有效的方式来改变drawable的颜色并显示它

时间:2016-11-01 10:29:35

标签: android performance colors bitmap memory-efficient

我有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); "对于每resultBitmapImageView。我的问题是我经常收到有关Widget update处理的内存限制的错误,或者我的Bitmap显示错误加载视图"。是否有任何有效的方法来重新着色图像或用另一个Widget替换所有白色像素?

我尝试将生成的图像(如果用户更改了颜色)保存到内部存储空间并从那里加载,但速度不快。

先谢谢, J. Doe;)

0 个答案:

没有答案