2012-05-04 11 views
1

2つの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; 
} 

は、誰かが私は2つのImageViewのコンポーネントを比較するについて行くことができる方法を教えていただけますか?

おかげ

答えて

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に渡すIntegerオブジェクトを作成したい場合があります()。

また、これがあなたがしたいことについて行く最善の方法であるかどうかはわかりませんが、それが心に浮かんだのは初めてです。

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(); 
} 
関連する問題