Android 小部件中的图标有时会断开/变黑
我实现了一个小部件,它总体上运行得很好。然而,我不时从用户那里得到报告,小部件中的一些图像被破坏(确切地说是黑色的)。我包括了一个设备的屏幕截图,它似乎正好解释了问题。所有图标都以PNG格式驻留在可绘制hdpi资源文件夹中 这种行为的可能解释是什么 以下是我如何将图像分配给小部件的代码片段:Android 小部件中的图标有时会断开/变黑,android,android-widget,imageview,Android,Android Widget,Imageview,我实现了一个小部件,它总体上运行得很好。然而,我不时从用户那里得到报告,小部件中的一些图像被破坏(确切地说是黑色的)。我包括了一个设备的屏幕截图,它似乎正好解释了问题。所有图标都以PNG格式驻留在可绘制hdpi资源文件夹中 这种行为的可能解释是什么 以下是我如何将图像分配给小部件的代码片段: public static void updateWidgetData(RemoteViews view, String id, Integer idWidget, String background, S
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;
}
黑色图标出现在随机位置,因此示例只是发生错误的一种可能性 很遗憾,我无法发表评论,但我想建议检查以下内容:
AndroidUtil.getLowMemoryBitmapOptions()
在这个Motorola上以及在它应该显示的设备上时,会返回BitmapFactory的哪些选项1) 我用getLowMemoryBitmapOptions()的代码更新了我的问题。每个设备上的选项都相同。2) 我的观点是,设备/GPU/OS与之相关的可能性很小。我更愿意假设一个来自摩托罗拉的自定义主屏幕实现——主屏幕不应该部分地影响小部件(所有的图像可能都应该是黑色的)。您可以安装一个不同的启动器,比如Go启动器,并尝试一下。出于测试目的,注释掉
bitmapOpts.inpurgable=true;bitmapOpts.inInputShareable=true代码>并更改为ARGB_8888。