Java 即使没有alpha通道,如何将PNG文件加载为ARGB_8888?
我有以下代码来加载png文件:Java 即使没有alpha通道,如何将PNG文件加载为ARGB_8888?,java,android,bitmap,format,alpha,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通道,它将以RG
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:我正在使用Android 2.3.4。我有个主意
我认为它应该运行。您建议我如何执行步骤1?当我加载图像时,它已经是565格式了。您的建议是将其转换回去,但图像已经更改,信息丢失。如果可以接受,我可以添加一个“.copy(Bitmap.Config.ARGB_8888,true)”。您可以通过下一种方式加载图像
BitmapFactory.decodeFile(file.getAbsolutePath())
自动加载图像的默认配置。