我实现了一个小部件,一般来说效果很好。然而,在这里和那里我得到用户的报告,Widget中的一些图像被破坏(黑色,确切地说)。我添加了Motorola Razr i (XT890)设备的屏幕截图,其中似乎有完全解释的问题。所有图标都以PNG格式驻留在drawable-hdpi资源文件夹中。
这种行为的可能解释是什么?
以下是我将图像分配给窗口小部件的代码段:
public static void updateWidgetData(RemoteViews view, String id, Integer idWidget, String background, String showTitle, String titleAlpha, Context context) {
...
Bitmap bitmap = BitmapFactory.decodeResource(context.getResources(), resourceId, AndroidUtil.getLowMemoryBitmapOptions());
view.setImageViewBitmap(idWeatherIcon, bitmap));
...
}
public static BitmapFactory.Options getLowMemoryBitmapOptions() {
/** BITMAP FACTORY OPTIONS **/
BitmapFactory.Options bitmapOpts = new BitmapFactory.Options();
bitmapOpts.inPreferredConfig = Bitmap.Config.RGB_565;
bitmapOpts.inPurgeable = true;
bitmapOpts.inInputShareable = true;
/** END BITMAP FACTORY OPTIONS **/
return bitmapOpts;
}
黑色图标出现在随机位置,因此示例只是错误发生的一种可能性......
答案 0 :(得分:0)
不幸的是,我无法评论,但想建议检查以下内容:
在此摩托罗拉上以及在显示应该显示的设备上时,AndroidUtil.getLowMemoryBitmapOptions()
会返回BitmapFactory的哪些选项。
检查所有图像,一个或多个图像可能会有所不同(可能是alpha通道/透明度?)
可能与上述之一和设备/ GPU / OS版本有关(因为Android碎片,你永远不知道你能发现什么)。