1

2つの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コンポーネントを比較する方法を教えてもらえますか?

ありがとう

4

2 に答える 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

考えられる方法の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 に答える