我有Widget
并希望让用户选择某些Color
的{{1}}。这些Buttons
Buttons
个文件保存在.png
文件夹中。我使用此代码将图片设为drawable
,并使用Bitmap
更改Color
。
Color Filter
我设置了" //Imagine: Color.RED or something....
int color = SettingsDefault.getInstance(context).getMenueColor();
Bitmap sourceBitmap = BitmapFactory.decodeResource(context.getResources(), rId);
Bitmap resultBitmap = Bitmap.createBitmap(sourceBitmap, 0, 0,
sourceBitmap.getWidth() - 1, sourceBitmap.getHeight() - 1);
Paint p = new Paint();
ColorFilter filter = new PorterDuffColorFilter(color, PorterDuff.Mode.SRC_ATOP);
p.setColorFilter(filter);
Canvas canvas = new Canvas(resultBitmap);
canvas.drawBitmap(resultBitmap, 0, 0, p);
"对于每resultBitmap
个ImageView
。我的问题是我经常收到有关Widget update
处理的内存限制的错误,或者我的Bitmap
显示错误加载视图"。是否有任何有效的方法来重新着色图像或用另一个Widget
替换所有白色像素?
我尝试将生成的图像(如果用户更改了颜色)保存到内部存储空间并从那里加载,但速度不快。
先谢谢, J. Doe;)