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.