我对位图解码有一些疑问。
当我尝试使用BitmapFactory.decodeByteArray从byte []数组解码Bitmap时,结果位图中的param byte []和mBuffer byte []之间有什么区别。当函数返回时,位图仍然保持对byte [] param的引用?
当我使用以下代码从sdcard解码jpg文件中的位图时:
File file = new File(getExternalCacheDir(), "large.jpg");
bitmap = BitmapFactory.decodeFile(file.getAbsolutePath());
if(mImageView != null){
mImageView.setImageBitmap(bitmap);
}
此jpg文件具有10800 * 5400分辨率和13.82M大小,结果位图不为空,并且没有OOM错误,但位图未显示。怎么会这样?我认为在这种情况下android应该抛出一个OOM错误,这样我就可以抓住它来再次尝试缩小位图。但它只是没有显示。这似乎不合理。有没有人知道原因?
答案 0 :(得分:0)
幸运的是,我发现当我将layerType设置为LAYER_TYPE_SOFTWARE时,会显示位图。所以我认为硬件渲染器有图像大小限制。