Android壁纸管理器缩放位图太小

Android壁纸管理器缩放位图太小,android,bitmap,scale,center,wallpaper,Android,Bitmap,Scale,Center,Wallpaper,墙纸管理器在某些设备上缩放墙纸太小。我使用了以下代码 Bitmap srcBitmap = ..... WallpaperManager wm = WallpaperManager .getInstance(getApplicationContext()); int height = wm.getDesiredMinimumHeight(); int width = wm.getDesiredMinimumWidth();

墙纸管理器在某些设备上缩放墙纸太小。我使用了以下代码

    Bitmap srcBitmap = .....
    WallpaperManager wm = WallpaperManager
                .getInstance(getApplicationContext());
    int height = wm.getDesiredMinimumHeight();
    int width = wm.getDesiredMinimumWidth();
    wm.setBitmap(Bitmap.createScaledBitmap(srcBitmap, width , height , true);
在android 4.0.4的galaxy note上,壁纸占据了整个屏幕。但在2.3的galaxy s2上,墙纸只填充屏幕中心的一个小矩形

您好


mp5

问题在于
wm.getDesiredMinimumHeight()
wm.getDesiredMinimumWidth()在某些设备上返回-1。所以
Bitmap.createScaledBitmap(srcBitmap,width,height,true)失败,使用了原始大小的
srcbtmap

这将使屏幕与位图的宽度和高度相匹配

    WallpaperManager wallmanage = (WallpaperManager) getSystemService(WALLPAPER_SERVICE);
wallmanager.setBitmap(bitmap);
wallmanager.suggestDesiredDimensions(w, h);

where w = bitmap.getWidth();  
and   h = bitmap.getHeight();