use*_*034 4 android indicator togglebutton
大家好,我想使用切换按钮,但具有不同的指示器颜色(如绿色或红色),如何更改指示器的颜色。
小智 5
我认为您必须创建 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" />
Run Code Online (Sandbox Code Playgroud)
然后 btntoggle_selector xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<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"/>
</selector>
Run Code Online (Sandbox Code Playgroud)
bg_selected 和 bg_normal 只是像 9-patch 这样的图像。
我认为如果变化不大,你可以使用主题。
<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>
Run Code Online (Sandbox Code Playgroud)
在这里您可以在 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" />
Run Code Online (Sandbox Code Playgroud)