有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java即使没有alpha通道,如何将PNGFiles加载为ARGB_8888?

我有以下代码来加载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的形式加载图像。如何防止这种情况发生,并在每次加载时保持不变(无抖动、无转换或任何其他情况)

如果这是不可能的,那么是否有其他方法可以在没有BitmapFactory的情况下将PNG文件加载为ARGB_8888

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

PS:我使用的是安卓2.3.4


共 (1) 个答案

  1. # 1 楼答案

    我有个主意

    1. 尝试在没有PreferredConfig的情况下加载PNG位图
    2. 获取图像像素
    3. 使用所需的首选配置(ARGB_8888)创建一个新位图
    4. 在新位图中设置PNG位图的像素

    我觉得它应该运行