Android WallpaperManager将Bitmap缩放得太小

时间:2013-01-16 19:50:28

标签: android bitmap scale center wallpaper

WallpaperManager在某些设备上将壁纸缩小得太小。我使用了以下代码。

    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的星系笔记上,壁纸填满了整个屏幕。但是在具有2.3的星系s2上,壁纸只会在屏幕中央填充一个小矩形。

问候,

MP5

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:0)

这将使您的位图宽度和高度适合屏幕

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

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