为什么在(少数)Android设备上设置1x1像素壁纸失败?

时间:2016-09-27 05:27:04

标签: android android-bitmap wallpaper homescreen android-wallpaper

要在Android设备上设置黑色或纯色壁纸,可以使用像素设置为该颜色的微小1x1像素图像。这适用于大多数Android设备(包括Nexus设备和其他运行Android的设备)。系统知道如何用一个像素填充整个屏幕,为您提供完整的纯色壁纸。

但是,有些Android设备在设置1x1像素图片壁纸后立即出错:

  • 很遗憾,系统用户界面已停止。
  • 不幸的是,Home已停止。

尝试略大的图像尺寸(2x2,3x3,4x4)也会失败。

我刚刚创建了一个开源Android应用来测试此问题:Minimum Wallpaper。其源代码可用on GitHub

正如您在GitHub上看到的,实际设置壁纸的代码是:

public static Bitmap createColorSwatchBitmap(int width, int height, int color) {
    final Bitmap colorBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
    colorBitmap.eraseColor(color);
    return colorBitmap;
}

final WallpaperManager wpManager = WallpaperManager.getInstance(context);
final Bitmap colorBitmap = ColorUtils.createColorSwatchBitmap(width, height, color);
wpManager.setBitmap(colorBitmap);

到目前为止,我有一份截图报告,在Allview P8 Energy上,最小壁纸尺寸为32x32。从我参与的另一个项目中,我得到一些信息,1x1壁纸也会在以下设备上失败:

  • LG:G5,Stylus 2
  • 魅族:m1音符,m2音符,m3音符,MX5,Pro 6

我的问题:

  1. 设置1x1像素壁纸后,(仅)部分设备出错的原因是什么?

  2. 可能是最低限度的"安全"适合所有Android设备的壁纸尺寸?

0 个答案:

没有答案