0

2 つの電源ボタンの画像があり、1 つは赤、もう 1 つは緑です。バックグラウンドリソースを最初に赤い電源ボタンに設定するボタンを作成したいと思います。リソースが押されたときに緑に変更され、もう一度クリックすると、再び赤に戻ります。助けてください...

4

4 に答える 4

1

ToggleButtonを使用します。hereのように多数の例が利用可能です。

于 2013-03-28T06:26:24.887 に答える
1

カスタム オン/オフ グラフィックスを使用してトグル ボタンを作成する方法

CheckBoxカスタム セレクターで a を使用します。

これにより、Java コードでのプログラムによる介入なしで、有効な状態と無効な状態のチェックされたイメージとチェックされていないイメージを切り替えることができます。

- XML レイアウト:

<CheckBox
    android:id="@+id/my_custom_toggle"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:button="@drawable/my_selector"
/>

- drawable/my_selector.xml:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
    android:state_checked="true"
    android:state_enabled="false"
    android:drawable="@drawable/ic_button_custom_toggle_disabled"
    />
<item
    android:state_checked="false"
    android:state_enabled="false"
    android:drawable="@drawable/ic_button_custom_toggle_disabled"
    />
<item
    android:state_checked="true"
    android:drawable="@drawable/ic_button_custom_toggle_linked"
    />
<item
    android:state_checked="false"
    android:drawable="@drawable/ic_button_custom_toggle_unlinked"
    />

上記の状態ごとにカスタム .png 画像を追加します。

于 2013-03-28T06:30:01.117 に答える
1

これを行う:

<ToggleButton 
        android:id="@+id/toggle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/check"   //check.xml
        android:layout_margin="10dp"
        android:textOn=""
        android:textOff=""
        android:focusable="false"
        android:focusableInTouchMode="false"
        android:layout_centerVertical="true"/>

drawable フォルダーに check.xml を作成する

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- When selected, use grey -->
    <item android:drawable="@drawable/selected_image"
          android:state_checked="true" />
    <!-- When not selected, use white-->
    <item android:drawable="@drawable/unselected_image"
        android:state_checked="false"/>

 </selector>

これは完全に正常に機能します。

于 2013-03-28T06:40:26.287 に答える
0

描画可能なフォルダーに赤と緑の 2 つの画像を配置する必要があります。

static int set = 0;

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

    final ImageButton toggle = (ImageButton) findViewById(R.id.imageButton1);

    toggle.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

            if(set==0)
            {
                toggle.setBackgroundResource(R.drawable.red);
                set=1;
            }
            else
            {
                toggle.setBackgroundResource(R.drawable.green);
                set=0;
            }

        }
    });
}  
于 2013-03-28T06:36:44.960 に答える