1

我需要通过图像资源(按钮上使用的封面图像)或图像资源的文件路径来比较两个 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 组件吗?

谢谢

4

2 回答 2

2

比较两个 ImageView 对象 ::

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();
}
于 2012-05-04T01:29:43.830 回答
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;
}

注意我没有编译这个,它可能希望你将整数对象传递给 setTag()。

另外,我不知道这是否是完成您想做的事情的最佳方式,但这是首先想到的。

于 2012-05-04T01:29:27.957 回答