【发布时间】:2012-08-12 07:31:36
【问题描述】:
当 ToggleButton 将状态从 Green(true) 更改为 Red(false) 时,我需要更改颜色。如何更改ToggleButton 颜色?
【问题讨论】:
-
我已经在这里问过并回答了:):stackoverflow.com/questions/11253512/…
标签: android
当 ToggleButton 将状态从 Green(true) 更改为 Red(false) 时,我需要更改颜色。如何更改ToggleButton 颜色?
【问题讨论】:
标签: android
在 res/values 文件夹中创建一个名为 colors.xml 的 xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="red">#ff0000</color>
<color name="green">#00ff00</color>
</resources>
在drawable文件夹中,创建一个xml文件my_btn_toggle.xml:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="false" android:drawable="@color/red" />
<item android:state_checked="true" android:drawable="@color/green" />
</selector>
并在 xml 部分定义您的切换按钮:
<ToggleButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New ToggleButton"
android:id="@+id/toggleButton"
android:background="@drawable/my_btn_toggle"/>
【讨论】:
ToggleButton Btn=new ToggleButton(this);// or get it from the layout by ToggleButton Btn=(ToggleButton) findViewById(R.id.IDofButton);
Btn.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
// TODO Auto-generated method stub
if(isChecked)
buttonView.setBackgroundColor(Color.GREEN);
else buttonView.setBackgroundColor(Color.RED);
}
});
【讨论】: