比较ImageView对象

时间:2012-05-04 01:14:26

标签: android button imageview

我需要通过图像资源(按钮上使用的封面图像)或图像资源的文件路径来比较两个ImageView对象。

有些事情:

final ImageView button01 = (ImageView) findViewById(R.id.button01);
final ImageView button02 = (ImageView) findViewById(R.id.button02);
button01.setImageResource(R.drawable.myDogsPhoto);
button02.setImageResource(R.drawable.myDogsPhoto);
if (button01.getImageResource() == button02.getImageResource()) {
return true;
}

有人可以告诉我如何比较两个ImageView组件吗?

由于

2 个答案:

答案 0 :(得分:2)

比较两个ImageView Objects ::

button01 =(ImageView)findViewById(R.id.button01 );
button02 =(ImageView)findViewById(R.id.button02 );

Drawable d=button01 .getDrawable();
Drawable d1=button02 .getDrawable();
if( d== d1){
     Toast.makeText(Example.this, "hello", Toast.LENGTH_SHORT).show();
}else {
    Toast.makeText(Example.this, "hai", Toast.LENGTH_SHORT).show();
}

答案 1 :(得分:1)

一种可能的方法是使用View.setTag();方法来存储资源值(或文件路径字符串)。 setTag()和getTag()方法允许您将任意数据附加到View对象,以后可以根据需要调用它。

例如:

final ImageView button01 = (ImageView) findViewById(R.id.button01);
final ImageView button02 = (ImageView) findViewById(R.id.button02);

button01.setImageResource(R.drawable.myDogsPhoto);
button01.setTag(R.drawable.myDogsPhoto);
button02.setImageResource(R.drawable.myDogsPhoto);
button02.setTag(R.drawable.myDogsPhoto);
if (button01.getTag().equals(button02.getTag())) {
    return true;
}

注意我没有编译它,它可能希望你让Integer对象传递给setTag()。

此外,我不知道这是否是您想要做的最佳方式,但这是第一个想到的。