2

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 的 Galaxy Note 上,壁纸会填满全屏。但是在具有 2.3 的 Galaxy s2 上,壁纸仅填充屏幕中央的一个小矩形。

问候,

mp5

4

2 回答 2

3

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

于 2013-02-01T08:39:58.230 回答
0

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

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

where w = bitmap.getWidth();  
and   h = bitmap.getHeight();
于 2013-07-01T20:44:14.683 回答