即使没有alpha通道,如何将PNG文件加载为ARGB_8888?

时间:2012-06-09 00:10:47

标签: java android bitmap format alpha

我有以下代码来加载png文件:

BitmapFactory.Options options = new BitmapFactory.Options();
options.inPreferredConfig = Bitmap.Config.ARGB_8888;
options.inDither = false;
map =  BitmapFactory.decodeResource(getResources(), mapid, options);

不幸的是,如果图像没有alpha通道,它会将图像加载为RGB_565。如何防止这种情况并且每次都保持不变(不抖动,没有转换或其他任何东西)一直加载它们?

如果这不可能,那么是否有其他方法可以将PNG文件作为ARGB_8888加载而不使用BitmapFactory?

或者是否可以使用另一种格式代替PNG,它也支持Alpha通道并始终提供ARGB_8888位图?

PS:我使用的是Android 2.3.4。

1 个答案:

答案 0 :(得分:1)

我有个主意。

  1. 尝试加载没有PreferredConfig的PNG位图。
  2. 获取图像像素。
  3. 使用您想要的首选配置创建一个新位图(ARGB_8888)。
  4. 在新位图中设置PNG位图的像素。
  5. 我认为它应该运行。

相关问题