我有这样的问题
在ImageView
中,我默认设置ivImage.setImageResource(R.drawable.avatar)
当我单击“保存”按钮时,如果ImageView
中的图像未更改,则不应保存图像。我尝试了这个,但它不起作用
private Drawable oldDrawable;
onCreate()中的
oldDrawable = imgAvatarDoctor.getDrawable();
并点击按钮
if (imgAvatarDoctor.getDrawable() == oldDrawable) {
isNoError = false;
}
那么我该如何解决这个问题呢?非常感谢
答案 0 :(得分:5)
使用setTag和getTag来比较你的drawable:
最初在你的onCreate中将你的imageview的标签设置为0
imgAvatarDoctor.setTag("0");
每当您更改图像视图时,您可以将标记更改为0以外的其他内容,如:
imgAvatarDoctor.setTag("UpdatedTag");
现在,在您的点击监听器上,您可以执行以下操作:
if (imgAvatarDoctor.getTag().equalsIgnoreCase("UpdatedTag")){
//your image view is updated
} else {
// your image view is not update
}
快乐编码!!!!!
答案 1 :(得分:1)
您可以使用标志来触发图像更改。 在onCreate()
imageChanged = false;
在获得更改图像的功能(即onActivityResult)中,将此标志更新为
imageChanged = true;
然后点击保存按钮,您可以轻松检查此标志:
if(imageChanged)
//save image
else
//pass
答案 2 :(得分:0)
设置图像时,将任何标记设置为图像
image.setTag(res); //here, res is drawableID
在检查图像ID时,您可以使用此标记进行比较:
int oldImage = image.getTag(); //oldImage will be same as drawable ID
现在,您可以将oldImage与该图像的可绘制ID进行比较,并检查其是否已更新。
答案 3 :(得分:0)
您可以改为使用位图,
private Bitmap oldDrawable;
oldDrawable = ((BitmapDrawable) ivImage.getDrawable()).getBitmap();
if (oldDrawable == oldDrawable) {
isNoError = false;
}