以下行抛出OutOfMemoryException
if (null == myImage.getDrawable()){
//...
}
还有另一种检查ImageView是否具有Drawable / Bitmap的方法吗?
答案 0 :(得分:1)
在这种情况下,我要做的是在setTag
上使用getTag
和ImageView
。第一次在xml中将标记设置为空,每当绑定任何drawable时,使用setTag().
如果tag有一些值,则假设imageview具有drawable,如果该值为空,则imageview没有drawable。
希望这有助于你
答案 1 :(得分:1)
你必须注意你的内存使用情况,这是一个快速而肮脏的解决方案
try {
if (myImage.getDrawable() == null)
doFoo();
else
doBar();
} catch (OutOfMemoryError e) {
//the ImageView definetely had some large content
doBar();
}
答案 2 :(得分:1)
这可以解决。调用imageview.getWidth()或getHeight()。如果值为0则不加载图像
答案 3 :(得分:1)
当setDrawable方法调用时,您可以覆盖ImageView类并填充一些布尔值。
public class CustomImageView extends ImageView {
public boolean isImageSet = false;
public void setImageBitmap(Bitmap bm) {
super.setImageBitmap(bm);
if(bm != null)
isImageSet = true;
}
}
答案 4 :(得分:0)
这可能只解决症状,但您可以尝试在androidmanifest应用程序标记中添加android:largeHeap =“true”