本文以一個簡單的小例子,簡述在Android開發中ToggleButton(開關按鈕)和Switch(開關)的簡單使用,僅供學習分享使用。 ...
本文以一個簡單的小例子,簡述在Android開發中ToggleButton(開關按鈕)和Switch(開關)的簡單使用,僅供學習分享使用。
概述
ToggleButton是一個有兩種狀態(checked/unchecked)的按鈕,經常用於開/關等場景中,預設文本顯示(ON/OFF),Switch 是一個擁有兩種狀態的控制項,具有滑動的效果。
ToggleButton
ToggleButton涉及知識點如下:
- android:textOff 設置未選中時顯示的文本內容,預設為OFF。
- android:textOn 設置選中時顯示的文本內容,預設為ON。
- android:disabledAlpha 控制項禁用時的透明度,float類型,
- android:background 背景設置,可以用於設置一個圖片或者資源文件
- setOnCheckedChangeListener 用於設置監聽狀態改變的事件
- OnCheckedChangeListener 狀態監聽事件,是一個介面,有一個函數需要實現
- onCheckedChanged(CompoundButton buttonView, boolean isChecked) 監聽事件需要實現的函數
ToggleButton示例效果圖如下:
ToggleButton源碼
(xml)源碼如下:
1 <TextView 2 android:id="@+id/tv_toggle" 3 android:layout_width="match_parent" 4 android:layout_height="wrap_content" 5 android:layout_below="@id/sp_info" 6 android:textSize="15dp" 7 android:layout_marginBottom="10dp" 8 android:text="@string/tv_toggle"/> 9 <ToggleButton 10 android:id="@+id/tb_info" 11 android:textOff="" 12 android:textOn="" 13 android:layout_marginBottom="10dp" 14 android:background="@drawable/toggle_selector" 15 android:layout_below="@id/tv_toggle" 16 android:layout_width="wrap_content" 17 android:layout_height="wrap_content"/>
關於toggle_selector資源文件如下(資源文件中的on和off對應圖片):
1 <?xml version="1.0" encoding="utf-8"?> 2 <selector xmlns:android="http://schemas.android.com/apk/res/android"> 3 <item android:state_checked="true" android:drawable="@drawable/on"></item> 4 <item android:state_checked="false" android:drawable="@drawable/off"></item> 5 </selector>
實現監聽事件的源碼如下:
1 mToggleButton =(ToggleButton) this.findViewById(R.id.tb_info); 2 mToggleButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 3 @Override 4 public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 5 String info="當前狀態是:"+(isChecked?"打開":"關閉"); 6 Toast.makeText(MainActivity.this,info,Toast.LENGTH_LONG).show(); 7 } 8 });
Switch控制項
Switch涉及知識點如下:
- android:textOff 設置未選中時顯示的文本內容,預設為OFF。
- android:textOn 設置選中時顯示的文本內容,預設為ON。
- android:thumb:滑塊的圖片
- android:showText:設置on/off的時候是否顯示文字,boolean
- android:splitTrack:是否設置一個間隙,讓滑塊與底部圖片分隔,boolean
- setOnCheckedChangeListener 用於設置監聽狀態改變的事件
- OnCheckedChangeListener 狀態監聽事件,是一個介面,有一個函數需要實現
- onCheckedChanged(CompoundButton buttonView, boolean isChecked) 監聽事件需要實現的函數
Switch示例效果圖如下:
Switch源碼
xml源碼如下(其中的toggle_selector和上面一樣,設置選中和未選中時的圖片):
1 <Switch 2 android:id="@+id/sw_info" 3 android:textOff="" 4 android:textOn="" 5 android:background="@drawable/toggle_selector1" 6 android:track="@drawable/toggle_selector1" 7 android:layout_below="@id/tb_info" 8 android:layout_width="wrap_content" 9 android:layout_height="wrap_content"/>
監聽事件源碼如下:
1 mSwitch =(Switch)this.findViewById(R.id.sw_info); 2 mSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 3 @Override 4 public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 5 String info="當前狀態是:"+(isChecked?"打開":"關閉"); 6 Toast.makeText(MainActivity.this,info,Toast.LENGTH_LONG).show(); 7 } 8 });
備註
ToggleButton和Switch是很常見的基礎性控制項,簡單易用,場景廣泛,本文旨在拋磚引玉,希望大家共同學習。