web-dev-qa-db-ja.com

Android:スライド(オン/オフ)ボタンの作成方法

オンとオフの2つの状態を持つスライドボタン(=スイッチのようなもの)を作成したいので、ユーザーはボタンを押してスライドさせて状態を変更する必要があります(スライダーのロック解除に似ていますが、画面全体を横切ることはありません)。あなたはそれを行う方法について何か考えがありますか?私は本当に答えを見つけようとしましたが、成功しませんでした。

どうもありがとう!

12
obrien

ターゲットSDKが4.0(アイスクリームサンドイッチ)よりも高い場合は、 スイッチコンポーネント が最善の解決策のようです。したがって、同じ問題に直面する他の人のためにそれを見てください。 :)

10
obrien

//レイアウトデザインで以下の行

<RelativeLayout Android:layout_width="wrap_content" Android:id="@+id/rl_onoff"
    Android:layout_height="wrap_content">
<ImageView Android:id="@+id/on_btn" Android:layout_width="80dp"  Android:layout_height="40dp" Android:src="@drawable/on_btn" Android:visibility="visible"></ImageView>
<ImageView Android:id="@+id/off_btn" Android:layout_width="80dp"  Android:layout_height="40dp" Android:src="@drawable/off_btn" Android:visibility="invisible"></ImageView>
   </RelativeLayout>

//アクティビティでこれを呼び出します

ImageView mNotification_on_btn=(ImageView)findViewById(R.id.on_btn);
ImageView mNotification_off_btn=(ImageView)findViewById(R.id.off_btn);

    mNotification_on_btn.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                mNotification_on_btn.setVisibility(View.GONE);
                mNotification_off_btn.setVisibility(View.VISIBLE);
            }
        });
    mNotification_off_btn.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                mNotification_off_btn.setVisibility(View.GONE);
                mNotification_on_btn.setVisibility(View.VISIBLE);
            }
        });

//これはiphoneスタイルのようにオンオフトグルボタンに切り替わりますenter image description hereenter image description here

12
Padma Kumar

これは、チェックボックスまたはToggleButtonを使用して実現できます。以下は例です

xmlファイル

 <CheckBox
        Android:id="@+id/check_on_of"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:button="@drawable/chec_box_on_off"
       />

ドローアブルchec_box_on_offファイルは

 <?xml version="1.0" encoding="utf-8"?>
 <selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
<item Android:drawable="@drawable/check_box_on" Android:state_checked="true"/>
<item Android:drawable="@drawable/check_box_off" Android:state_checked="false"/>
</selector>

オンオフボタンのようになり、チェックボックスがオンかオフかを確認することもできます。

Javaコードは

 CheckBox check = (CheckBox)findViewById(R.id.check_on_of);
 check.isChecked();

同様に、ToggleButtonを使用してこれを実現することもできます。

1
Manikandan