2012-01-16 94 views
4

所以我很早就开发了壁纸更换器并且发布了。过了一段时间,我开始接受评论墙纸没有正确调整大小。我也尝试过不同大小的em and,他们是对的。我正确缩放位图等,但不知何故安卓系统倾向于重新调整壁纸甚至更大!有没有办法避免这种情况? 我的代码:Android设置壁纸出错了

Display display = parent.getWindowManager().getDefaultDisplay(); 
        int width = display.getWidth(); 
        int height = display.getHeight(); 
        Bitmap scaled = Bitmap.createScaledBitmap(wallpaper, width, height, true); 
       WallpaperManager wm = WallpaperManager.getInstance(getContext()); 
       wm.setBitmap(scaled); 

我一直在尝试其他方法太多,但似乎没有任何帮助,即使我事后检查,如果重新按比例缩放壁纸大小正确等:( 任何想法

+0

我记得阅读一些有关壁纸管理器试图自动调整图像大小,然后回来......你可能想看看有关的文章。 – Max 2012-01-16 20:58:57

+0

看到这篇文章:http://stackoverflow.com/questions/2010399/android-wallpaper-background-dimensions墙纸适当的尺寸信息。 – kabuko 2012-01-16 21:22:54

+0

我有适当的网站,但最大规定“壁纸管理器试图自动调整图像大小”而问题是,我可以避免吗? – Ruuhkis 2012-01-17 18:13:37

回答

0

我有同样的问题,调整后壁纸大小相同,但不同的分辨率。

在我的例子代码解决的问题:

DisplayMetrics metrics = new DisplayMetrics(); 
     getWindowManager().getDefaultDisplay().getMetrics(metrics); 

     int height = metrics.heightPixels; 
     int width = metrics.widthPixels; 

     Bitmap bitmap = Bitmap 
       .createScaledBitmap(whatever, width, height, true); 
0

我不得不创建覆盖图像。

  1. WallpaperManager.getDesiredMinimumWidth() X WallpaperManager.getDesiredMinimumHeight()

  2. 大小创建一个空白图像调整你的位图到屏幕大小,Display display = getWindowManager().getDefaultDisplay();bmp = Bitmap.createScaledBitmap(bmp, display.getWidth(), display.getHeight(), false);

  3. 覆盖您的空白图像的中心壁纸。并将Overlay设置为壁纸。