2

クリックするたびに画像を変更する ImageButton を使用しています。これは実行されない私のコードです:

public class MainActivity extends Activity {

ImageButton button;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    button = (ImageButton)findViewById(R.id.imageButton1);
    button.setOnClickListener(imgButtonHandler);
}

View.OnClickListener imgButtonHandler = new View.OnClickListener() {

    public void onClick(View v) {
        if(button.getBackground().equals(R.drawable.lok))
        {
            button.setBackgroundResource(0);
            button.setBackgroundResource(R.drawable.lok2);
        }

    }
};}

この部分が間違っていることはわかっています: if(button.getBackground().equals(R.drawable.lok))

誰かがそれに対する別の解決策を持っていますか?

前もって感謝します

4

6 に答える 6

0

int i変更する5つの画像があり、変数を使用するとしましょう

public class MainActivity extends Activity {

  ImageButton button;
  int i=0;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.activity_main);

     button = (ImageButton)findViewById(R.id.imageButton1);
     button.setOnClickListener(imgButtonHandler);
  }

    View.OnClickListener imgButtonHandler = new View.OnClickListener() {

    public void onClick(View v) {

        button.setBackgroundResource(0);
        switch (i % 5) {
    case 0:
        button.setBackgroundResource(R.drawable.image0);
        break;
    case 1:
        button.setBackgroundResource(R.drawable.image1);
        break;
    case 2:
        button.setBackgroundResource(R.drawable.image2);
        break;
    case 3:
        button.setBackgroundResource(R.drawable.image3);
        break;
    case 4:
        button.setBackgroundResource(R.drawable.image4);
        break;

    default:
        break;
    }
     i++;
   }
  };
 }
于 2013-09-05T06:24:45.493 に答える
0

ボタンをクリックしたときのボタンの画像を変更したい場合。まず、res/value に画像に関する情報を追加する必要があります。次に、3 つの pictrue を交換する必要がある場合は、selector.xme int res/drawable を作成するだけです。

<selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:state_window_focused="false"
        android:drawable="@drawable/t3"/>
        <item android:state_focused="true"
        android:drawable="@drawable/t1"/>
        <item android:state_pressed="true"
        android:drawable="@drawable/t2"/>
        <item android:drawable="@drawable/t3"/>
</selector>

申し訳ありませんが、私の英語は上手ではなく、私のやり方は私が以前に試したばかりです

于 2013-09-05T06:25:34.870 に答える
0

そのようにしてみてください

 Drawable fDraw = button.getBackground();
 Drawable sDraw = getResources().getDrawable(R.drawable.lok);

  if(fDraw.hashCode() == sDraw.hashCode())
  {
   //same
  }
else
{
//not same
}
}
于 2013-09-05T06:27:30.670 に答える
0

TagImagebuttonの も確認できます。たとえば、ImageButton の Background を設定するたびに setTag(X) を指定します。次に、タグを比較して、背景とタグを変更できます。

于 2013-09-05T06:18:17.483 に答える