小部件中的图标有时会破碎/黑色

时间:2014-10-23 12:16:43

标签: android android-widget imageview

我实现了一个小部件,一般来说效果很好。然而,在这里和那里我得到用户的报告,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;
}

One icon does not load correctly

黑色图标出现在随机位置,因此示例只是错误发生的一种可能性......

1 个答案:

答案 0 :(得分:0)

不幸的是,我无法评论,但想建议检查以下内容:

  1. 在此摩托罗拉上以及在显示应该显示的设备上时,AndroidUtil.getLowMemoryBitmapOptions()会返回BitmapFactory的哪些选项。

  2. 检查所有图像,一个或多个图像可能会有所不同(可能是alpha通道/透明度?)

  3. 可能与上述之一和设备/ GPU / OS版本有关(因为Android碎片,你永远不知道你能发现什么)。