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