【发布时间】:2017-09-17 18:49:10
【问题描述】:
我的 Android 应用中有这个方法:
public void displayImage(ByteArrayOutputStream pngData) {
if (pngData != null) {
Bitmap image = BitmapFactory.decodeByteArray(pngData.toByteArray(), 0, pngData.size()); // even when this generates a log error...
if (image != null) { // ...this still evaluates true
this.imageView.setImageBitmap(image); // ...and then this displays an all-black image
}
}
}
有时,decodeByteArray 失败,D/skia: ------ png error bad adaptive filter value 出现在控制台中。但是,decodeByteArray 仍然返回一个非空图像对象。然后setImageBitmap 显示一个空的(全黑)图像。
在这种情况下,我想简单地跳过显示图像,但我找不到测试此错误的方法。除了image != null,我还尝试过测试image.getWidth() > 0、image.getByteCount() > 0 和image.getDensity() > 0,但对于图像的好坏,它们都评估为true。有没有办法捕捉到这个?
【问题讨论】:
标签: android graphics error-handling png