我使用WallpaperManager在背景中显示一个位图。我使用的是wallpaperManager.setBitmap(wallPaper); //墙纸当然是位图。
我想把这个位图调整到屏幕大小,并在每个虚拟屏幕上显示它(重复)。
对此有什么建议吗?
发布于 2012-07-02 19:37:49
Android开发者网站上的这篇文章展示了每种密度的屏幕分辨率范围。
我相信壁纸必须与屏幕分辨率相匹配,并且不能拉伸。例如,如果您创建了一个具有高屏幕密度的新仿真器,例如480x854,您就可以看到这一点。默认的主屏幕背景居中,顶部和底部有较大的黑色条带。
JPEG指示您必须使用WallpaperManager格式的图像,即使您使用setResource()方法-资源必须是位图,因此不能是九补丁或其他类型的可绘制。
发布于 2012-07-02 20:24:05
您可以检测设备的密度,然后相应地设置壁纸:
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;
} https://stackoverflow.com/questions/11292753
复制相似问题