问题现象
缓存宽高很大的Bitmap在本地,将这个Bitmap拉到电脑中,后缀改成.png或者.jpg,使用图片浏览器显示正常。然而,使用Android Bitmap解析库解析成Bitmap,用Canvas绘制出来显示全黑。这个现象是概率出现的,不过Bitmap宽高越大,出问题情况越大。
原因分析
我碰到这个问题是因为使用Android PDF解析PDF源文件,将每页PDF解析到ARGB格式的Bitmap缓存在本地,显示时,使用了CompressFormat.JPEG进行解析。ARGB含有alpha通道,使用CompressFormat.JPEG进行解析时,有时会出现异常。
解决方案
将CompressFormat.JPEG改为CompressFormat.PNG