位图始终为空,但文件路径是正确的

时间:2014-08-13 10:29:42

标签: android android-bitmap

这是我的代码,用于将BitmapImageView加载到另一项活动中检索到的filepath
我可以获取文件,但Bitmap始终为null

我尝试使用250kb图像代码工作正常但它不适用于1.5MB图像。如何解决此问题?

Logcat消息:

skia:           --- SkImageDecoder::Factory returned null
Choreographer:  Skipped 855 frames! `The application may be doing too much work on its main thread`.

Bundle extras = getIntent().getExtras();
if (extras != null) {
    String imagepath = extras.getString("FILEPATH1");
    File imgFile = new  File(imagepath);
        if(imgFile.exists()){                   
            Bitmap bitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());                    
            imgCaptured.setImageBitmap(bitmap);                         
        }           
    }
}

1 个答案:

答案 0 :(得分:2)

正如Javadocs所说:

Returns: the resulting decoded bitmap, or null if it could not be decoded.

因此,如果您成功地从同一个文件加载了一个小位图,但是较大的文件失败了,那么它就是一个很大的问题指标。最有可能解码1.5M JPEG文件会导致位图大小超过10M。您的手机无法加载大图像。

顺便说一句,您可以通过乘以宽度和高度并将其乘以4(每个通道一个字节:红色,绿色,蓝色,alpha)来估计图像的未压缩大小。

例如,具有4128x2322像素的2.6M JPEG在未压缩时大约需要38340000bytes(38M)。

这可能有所帮助:Handling large Bitmaps