问题是关于android中的imageview:
在我调用
之类的方法后,有一个imageviewimageview.setImageDrawable(drawable)
或
imageview.setImageBitmap(bitmap)
然后在imageview上绘制一个drawable,我想知道在我将另一个setXXXDrawable / Bitmap方法调用到同一个imageview之前,在这个imageview上绘制的drawable是否已被其他操作更改?或者自上次通话以来,图像视图上显示的图像已经改变了?
任何帮助将不胜感激〜谢谢!
答案 0 :(得分:0)
您可以创建自己的ImageView来检测图像变化,以下是Sandy的答案,尝试使用它,setImageChangeListner()来检测图像变化。
public class MyImageView extends ImageView {
private OnImageChangeListiner onImageChangeListiner;
public MyImageView(Context context) {
super(context);
}
public MyImageView(Context context, AttributeSet attributeSet) {
super(context, attributeSet);
}
public void setImageChangeListiner(
OnImageChangeListiner onImageChangeListiner) {
this.onImageChangeListiner = onImageChangeListiner;
}
@Override
public void setBackgroundResource(int resid) {
super.setBackgroundResource(resid);
if (onImageChangeListiner != null)
onImageChangeListiner.imageChangedinView(this);
}
@Override
public void setBackgroundDrawable(Drawable background) {
super.setBackgroundDrawable(background);
if (onImageChangeListiner != null)
onImageChangeListiner.imageChangedinView(this);
}
public static interface OnImageChangeListiner {
public void imageChangedinView(ImageView mImageView);
}
}
答案 1 :(得分:0)
首先从imageView.getDrawable()方法获取drawable,并从你刚刚获得的drawable中获取bimap。现在比较这两个位图,以确定您已经更改了相同的图像或图像。如果它们相同,则两者都将具有相同的字节。
答案 2 :(得分:-1)
您可以按照以下方式检查图像是否已分配了可绘图:
if(imageView.getDrawable() != null) {
// you can get the drawable that has been assigned to it
} else {
// assign the desired drawable
imageview.setImageDrawable(drawable)
}