我需要通过图像资源(按钮上使用的封面图像)或图像资源的文件路径来比较两个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组件吗?
由于
答案 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()。
此外,我不知道这是否是您想要做的最佳方式,但这是第一个想到的。