如何检查imageview图像是否未更改

时间:2016-09-13 08:02:50

标签: android imageview

我有这样的问题 在ImageView中,我默认设置ivImage.setImageResource(R.drawable.avatar) 当我单击“保存”按钮时,如果ImageView中的图像未更改,则不应保存图像。我尝试了这个,但它不起作用

private Drawable oldDrawable;
onCreate()

中的

oldDrawable = imgAvatarDoctor.getDrawable();

并点击按钮

 if (imgAvatarDoctor.getDrawable() == oldDrawable) {
            isNoError = false;
        }

那么我该如何解决这个问题呢?非常感谢

4 个答案:

答案 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;
    }