6

で を作成しbuttonましたlayout。作成したDrawableフォルダーに、XML file名前付きのbtn01_state. は" "で作成された ibtn01_state.xmlに割り当てられますbuttonandroid:background=@drawable/btn01_state

現在、 にbuttonはデフォルトのimageimg1があります。clickをオンにするbuttonと、image1 が img2 に変わり、クリックしたマウス ボタンを離すと、image2 が再び img1 に変わります。

私がやりたいことは、クリックするたびにボタンの画像を変更することです。

たとえば、最初は btn01 に img01 があります

btn01が押された場合==> btn01のimgをimg02に設定し、btn01が再度押されるまでimg02を保持します。今、btn01 には img02 があります。

btn01 が押されたら、img01 を btn01 に設定します。

これにより、私がやりたいことがより明確になることを願っています。

btn_selector :

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/android_blue"
      android:state_pressed="true" />
<item android:drawable="@drawable/ic_launcher"
      android:state_focused="true" />
<item android:drawable="@drawable/ic_launcher" />

main.xml

<Button 
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:id="@+id/btn01"
    android:background="@drawable/btn01_state"/>
4

3 に答える 3

18

コード内で簡単に実行できます。

boolean isPressed = false;
button.setOnClickListener(buttonListener);

OnClickListener buttonListener = new OnClickListener() {
    @Override
    public void onClick(View v) {
        if(isPressed)
           button.setBackgroundResource(R.drawable.icon1);
        else
           button.setBackgroundResource(R.drawable.icon2);

        isPressed = !isPressed;
   }
};
于 2012-05-06T12:42:32.740 に答える
1

簡単な方法

btn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
    btn.setBackgroundDrawable(getResources().getDrawable(R.drawable.locationbutton_on));
                }
        }); 
于 2012-05-06T12:40:18.267 に答える
0

おそらくコードで作成してください。ボタンにリスナーを配置し、ボタンをクリックすると背景が変更されます。

于 2012-05-06T11:57:03.047 に答える