Android 自定義開關按鈕樣式

2021-10-04 14:44:00 字數 3686 閱讀 9003

效果圖:

1,定義乙個drawable/shape_thumb_off.xml檔案,定義開關關閉時,thumb滑塊顯示的效果。

<?xml version=

"1.0" encoding=

"utf-8"

?>

xmlns:android=

""android:shape=

"rectangle"

>

android:radius=

"50dp"

/>

android:height=

"20dp"

android:width=

"20dp"

/>

<

!--填充色--

>

android:color=

"@color/white"

/>

<

/shape>

2,定義乙個drawable/shape_thumb_on.xml檔案,定義開關開啟時,thumb滑塊顯示的效果。

<?xml version=

"1.0" encoding=

"utf-8"

?>

xmlns:android=

""android:shape=

"rectangle"

>

android:radius=

"50dp"

/>

android:height=

"30dp"

android:width=

"30dp"

/>

<

!--填充色--

>

android:color=

"@color/white"

/>

<

!--描邊--

>

android:width=

"1dp"

android:color=

"@color/red"

/>

<

/shape>

3,定義開關關閉狀態下track軌跡的樣式 drawable/shape_track_off.xml

<?xml version=

"1.0" encoding=

"utf-8"

?>

xmlns:android=

""android:shape=

"rectangle"

>

<

!--填充色--

>

android:color=

"@color/gray"

/>

android:width=

"50dp"

android:height=

"30dp"

/>

<

!--圓角--

>

android:radius=

"30dp"

/>

<

/shape>

4,定義開關為開啟狀態下track軌跡的樣式 drawable/shape_track_on.xml

<?xml version=

"1.0" encoding=

"utf-8"

?>

xmlns:android=

""android:shape=

"rectangle"

>

<

!--填充色--

>

android:color=

"@color/red"

/>

android:width=

"50dp"

android:height=

"30dp"

/>

<

!--圓角--

>

android:radius=

"30dp"

/>

<

/shape>

5,定義thumb滑塊在開啟關閉狀態下的不同,,用selector選擇器

<?xml version=

"1.0" encoding=

"utf-8"

?>

<

!--selector選擇器 就是在不同的狀態下設定不同的顯示效果--

>

xmlns:android=

"">

<

!--z狀態是什麼,--

>

<

!-- 特使狀態寫在上面 正常狀態寫在最後--

>

<

!-- android:state_checked=

"true",,當開啟時候用@drawable/shape_thumb_on形狀--

>

"@drawable/shape_thumb_on" android:state_checked=

"true"

/>

"@drawable/shape_thumb"

/>

<

/selector>

6,定義track軌跡在開啟關閉狀態下的不同,,用selector選擇器

<?xml version=

"1.0" encoding=

"utf-8"

?>

<

!--selector選擇器 就是在不同的狀態下設定不同的顯示效果--

>

xmlns:android=

"">

<

!--z狀態是什麼,--

>

<

!-- 特使狀態寫在上面 正常狀態寫在最後--

>

"@drawable/shape_track_on" android:state_checked=

"true"

/>

"@drawable/shape_track"

/>

<

/selector>

7,最後在布局檔案中的定義。

<

switch

android:layout_width=

"wrap_content"

android:layout_height=

"wrap_content"

android:text=

"開關按鈕"

android:showtext=

"true"

android:thumb=

"@drawable/selector_thumb"

android:track=

"@drawable/selector_track"

/>

Android 自定義按鈕

將按鈕的背景顏色設定成drawable檔案即可。雖然這裡講的是button,但是textview及其子元件也可以如法炮製 主布局檔案如下 下面三個檔案都放在drawable hdpi資料夾下,第乙個是my button selector.xml,定義了按鈕的不同狀態 my button presse...

Android 自定義滑動開關

自定義view寫了這麼多篇幅,通用的屬性部分 測量 忽略不計 真正實現的部分就不到100行 先上效果圖 關閉狀態 開啟狀態 動起來 下面我們看下我們的實現 override protected void ondraw canvas canvas private void drawswichballb...

Android自定義返回按鈕

在網上找了很多關於呼叫系統返回的按鈕,但都不成功,總是報空指標。如下 onkeydown keyevent.keycode back,null 說加上這麼一句話就可以呼叫,但總是報空指標,不知道為什麼,有知道的嗎?後來上網上又找到了另一種方法實現,就是用activity的跳轉形式來實現,因為acti...