【发布时间】:2020-05-11 18:19:47
【问题描述】:
我正在尝试使用BitmapFactory.decodeStream 从InputStream 解码位图,并且我想在ARGB_8888 中接收位图,所以我使用了BitmapFactory.Options.inPreferredConfig = ARGB_8888,但我的一些用户设法加载了位图在不同的配置 (RGBA_F16) 中,考虑到该字段的名称是 Preferred 的事实,这是有道理的,但这是为什么呢?什么情况下Android无法在inPreferredConfig中加载位图?源代码对此不是很清楚。我的解决方案是使用Bitmap.copy 或Canvas.drawBitmap 将位图转换为ARGB_8888,但在此之前,我想了解它发生的原因。
谢谢。
【问题讨论】:
-
您是在控制实际图像,还是来自任意来源(例如,由用户下载)的图像?如果图像可以来自任何地方,则可能是某些图像类型或具有某些属性的图像存在问题。
-
@CommonsWare 用户可以将图像导入应用程序,所以我无法控制...而且我不认为图像文件已损坏,因为用户可以使用导入向导导入图像工作正常。
-
我并不是要暗示图像已损坏,只是在某些方面不寻常。
标签: android bitmap android-bitmap