我正在使用 WallpaperManager 在背景中显示位图。我正在使用wallpaperManager.setBitmap(wallPaper);
// 壁纸当然是位图。
我想将此位图调整为屏幕大小并将其显示在每个虚拟屏幕中(重复)。
有什么建议吗?
我正在使用 WallpaperManager 在背景中显示位图。我正在使用wallpaperManager.setBitmap(wallPaper);
// 壁纸当然是位图。
我想将此位图调整为屏幕大小并将其显示在每个虚拟屏幕中(重复)。
有什么建议吗?
您可以检测设备的密度,然后相应地设置壁纸:
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;
}
Android 开发者网站上的这篇文章显示了每种密度的屏幕分辨率范围。
我相信壁纸必须与屏幕分辨率相匹配,并且不会被拉伸。例如,如果您创建一个具有高屏幕密度(如 480x854)的新模拟器,您就会看到这一点。默认主屏幕背景居中,顶部和底部有大黑带。
WallpaperManager API 指示您必须使用 PNG 或 JPEG 格式的图像,即使您使用 setResource() 方法 - 资源必须是位图,因此不能是九个补丁或其他类型的 Drawable。