Android: как создать слайд (вкл / выкл) кнопку

Я хотел бы создать слайд-кнопку (= что-то в качестве переключателя) с двумя состояниями: включено и выключено, чтобы пользователю пришлось нажимать кнопку и перемещать ее, чтобы изменить состояние (что-то похожее на разблокировку слайдера, но не на весь экран). У вас есть идеи, как это сделать? Я действительно пытался найти ответ, но мне не удалось.

Большое спасибо!

3 ответа

Решение

Похоже, что компонент Switch - лучшее решение, если ваш целевой SDK выше 4.0 (Ice Cream Sandwich). Так что для других, кто столкнется с той же проблемой, посмотрите на это.:)

// в вашем макете ниже строка

<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 на кнопку выключения

Вы можете достичь этого, используя флажок или 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.

Другие вопросы по тегам