0

我正在使用 WallpaperManager 在背景中显示位图。我正在使用wallpaperManager.setBitmap(wallPaper);// 壁纸当然是位图。

我想将此位图调整为屏幕大小并将其显示在每个虚拟屏幕中(重复)。

有什么建议吗?

4

2 回答 2

0

您可以检测设备的密度,然后相应地设置壁纸:

    DisplayMetrics displayMetrics = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
    switch(displayMetrics.densityDpi){ 
        case DisplayMetrics.DENSITY_LOW: 
            // Wallpaper for small sized devices.
            break; 
        case DisplayMetrics.DENSITY_MEDIUM: 
            // Wallpaper for medium-sized devices.
            break; 
        case DisplayMetrics.DENSITY_HIGH: 
            // Wallpaper for big-sized devices.
            break; 
    }  
于 2012-07-02T12:24:05.353 回答
0

Android 开发者网站上的这篇文章显示了每种密度的屏幕分辨率范围。

我相信壁纸必须与屏幕分辨率相匹配,并且不会被拉伸。例如,如果您创建一个具有高屏幕密度(如 480x854)的新模拟器,您就会看到这一点。默认主屏幕背景居中,顶部和底部有大黑带。

WallpaperManager API 指示您必须使用 PNG 或 JPEG 格式的图像,即使您使用 setResource() 方法 - 资源必须是位图,因此不能是九个补丁或其他类型的 Drawable。

于 2012-07-02T11:37:49.270 回答