您好每個身體我想使用切換按鈕,但具有不同的指示器顏色(如綠色或紅色),如何更改指示器的顏色。如何更改切換按鈕(Android)中的指示器顏色
See default indicator on imgur
您好每個身體我想使用切換按鈕,但具有不同的指示器顏色(如綠色或紅色),如何更改指示器的顏色。如何更改切換按鈕(Android)中的指示器顏色
See default indicator on imgur
我認爲你將不得不創建按鈕的2個自定義圖像,然後使用XML繪製作爲背景。
例如:
<ToggleButton
android:id="@+id/toggleButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/btntoggle_selector"
android:textColor="@android:color/white"
android:textOff="Toggle Button OFF"
android:textOn="Toggle Button ON "
android:onClick="onToggleButtonClick"/>
然後btntoggle_selector XML
<?xml version="1.0" encoding="utf-8"?>
<item android:drawable="@drawable/bg_selected" android:state_checked="true" android:state_pressed="true"/>
<item android:drawable="@drawable/bg_selected" android:state_checked="true" android:state_focused="false"/>
<item android:drawable="@drawable/bg_normal" android:state_checked="false" android:state_pressed="true"/>
<item android:drawable="@drawable/bg_normal" android:state_checked="false" android:state_focused="false"/>
bg_selected和bg_normal就像9-補丁圖像。
類似的問題被打上一個重複開關,雖然是不一樣的東西切換按鈕,在Android系統。 How to change color of the toggle button? 兩者都從CompoundButton繼承;但有一些不同的方法和定製支持。 在別處發佈的setBackground無法更改拇指或邊框。下面是改變邊界的基礎上 How set background drawable programmatically in Android
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <corners android:radius="3dp" /> <stroke android:width="2px" android:color="#000000" /> </shape>
,然後在代碼中顏色的例子:
if(!isChecked) { buttonView.setBackgroundResource(R.drawable.border_for_toggle_button); }
因此,通過設置背景則可以改變外觀。要改變內部的整個顏色,可以添加上面的可繪製XML;如添加這使內轉綠色:
我認爲你可以使用主題,如果變化不大。
<style name="AppTheme.ToggleButton" parent="Base.Widget.AppCompat.Button">
<item name="colorButtonNormal">@color/colorPrimary</item>
<item name="android:textColor">@android:color/white</item>
<item name="colorAccent">@android:color/white</item>
</style>
在這裏你可以在ToggleButton上使用這個新主題。
<ToggleButton
android:id="@+id/keyboard_caps_lock_btn"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="2"
android:minWidth="0dp"
android:textOff="@string/keyboard_caps_lock"
android:textOn="@string/keyboard_caps_lock"
android:textAllCaps="false"
android:theme="@style/AppTheme.ToggleButton" />
它是一個XML文件
<Toggle Button
android:id="@+id/my_location"
android:textColor="#000"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAllCaps="false"
android:theme="@style/ToggleButton"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true" />
在您的值 - 設置此樣式>樣式文件
<style name="ToggleButton" parent="Base.Widget.AppCompat.Button">
<item name="colorButtonNormal">@color/colorPrimary</item>
<item name="android:textColor">@android:color/white</item>
<item name="colorAccent">@android:color/white</item>
</style>