这似乎是Stackoverflow中的常见问题,大多数似乎是与this bug相关的错误。但是,我认为我的不同。我正在从内部存储加载我的图像,所以它不应该有导致上述错误的下载时间问题。
这是我用来用文件填充ImageView的一些精简代码。
Options opts = new Options();
opts.inSampleSize = 1;
opts.inPurgeable = true;
opts.inInputShareable = true;
opts.inTempStorage = new byte[32 * 1024];
Bitmap bm = null;
try {
// Use BufferedInputStream to attempt to alleviate null bitmap errors. This is/used to be an [Android bug.
bm = BitmapFactory.decodeStream(new BufferedInputStream(new FileInputStream(imageFile)), null, opts);
} catch (OutOfMemoryError e) {
// File is probably too big, try down-sampling
} catch (FileNotFoundException e) {
// The input File was not found
}
if(bm != null) {
imageView.setImageBitmap(bm);
} else {
// Give a warning
}
这适用于我的一些文件,而不适用于其他文件。我有uploaded the images I am testing with。我用GIMP预先存在的过滤器制作了所有3个。这些文件都没有给我OutOfMemory错误。
在logcat中收到:
D / skia(16422):------ png错误读取错误!
D / skia(16422):--- decoder-> decode返回false
答案 0 :(得分:0)
inSampleSize = 2;
或者你可以看看这个: BitmapFactory.decodeStream always returns null and skia decoder shows decode returned false
我认为尺寸是问题所在。