如何更改切换按钮(Android)中的指示器颜色
答
我认为你将不得不创建按钮的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>