如何在没有代码的情况下更改切换按钮颜色

时间:2017-08-17 15:41:07

标签: android

我使用下面的代码创建了圆形切换按钮。 我想根据切换状态更改按钮的颜色 -

如果没有为java活动添加代码,我怎么能这样做(类似于'textoff'和'texton'中的构建,我只能将代码添加到xml中,而无需向后面的java代码添加代码)

有可能吗?

 <ToggleButton
  android:id ="@+id/actionToggleButton"
  android:layout_width="150dp"
  android:layout_height="150dp"
  android:background="@drawable/button_bg_round"
  android:textoff="off"
  android:texton="on"
  android:padding="15dp"
  />


<?xml version="1.0" encoding="utf-8"?>
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
      <item>
         <shape android:shape="oval">
              <stroke android:color="#1E90FF" android:width="5dp" />
              <solid android:color="#87CEEB"/>
              <size android:width="150dp" android:height="150dp"/>
         </shape>
     </item>
 </selector>

1 个答案:

答案 0 :(得分:2)

您可以在style.xml中为ToggleButton定义自定义样式,例如:

<style name="ToggleButton.CustomTheme" parent="Theme.AppCompat.Light">
    <item name="colorControlNormal">@color/your_color</item>
    <item name="colorControlActivated">@color/your_color</item>
</style>

然后将样式应用于ToggleButton

<ToggleButton
  android:id ="@+id/actionToggleButton"
  android:layout_width="150dp"
  android:layout_height="150dp"
  android:background="@drawable/button_bg_round"
  android:textoff="off"
  android:texton="on"
  android:padding="15dp"
  android:theme="@style/ToggleButton.CustomTheme"
  />

而不是colorControlActivated它可能是colorAccent,我现在无法测试。

希望这有帮助。