更改切换按钮颜色
Change toggleButton color
How to change the color of toggleButton in listView?
这就是我设计 toggleButton
的方式
<ToggleButton
android:id="@+id/donePic"
android:layout_width="30dp"
android:layout_marginLeft="270dp"
android:layout_height="30dp"
android:background="@drawable/selector"
android:focusable="false"
android:focusableInTouchMode="false"
android:textOff=""
android:textOn=""/>
选择器
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- When selected, use tic -->
<item android:drawable="@mipmap/done"
android:state_checked="true" >
<solid
android:color="@color/red" />
</item>
<!-- When not selected, use un tic-->
<item android:drawable="@mipmap/done"
android:state_checked="false">
<solid
android:color="@color/green" />
</item>
</selector>
我的活动
public View getView(int position, View convertView, ViewGroup parent) { // inside adapter class
ViewHolder holder;
ToggleButton toggle;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.item_to_do, null);
toggle =(ToggleButton)convertView.findViewById(R.id.donePic);
toggle.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
Log.e("A","a");
} else {
// The toggle is disabled
}
}
});
convertView.setTag(holder);
}
holder = (ViewHolder) convertView.getTag();
return convertView;
}
点击toggleButton
时显示log
,但颜色仍然是白色(原来的颜色)。如何更改 toggleButton
的颜色?
已更新
我已经更新了我的代码,但颜色仍然是白色!我想使用 done.png 并且我已经把它放在 res/drawable/done.png
.
选择器
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- When selected, use tic -->
<item android:drawable="@drawable/toggle_on"
android:state_checked="true" >
</item>
<!-- When not selected, use un tic-->
<item android:drawable="@drawable/toggle_off"
android:state_checked="false">
</item>
</selector>
toggle_on
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/done"
android:state_checked="true">
<solid
android:color="@color/green" />
</item>
</selector>
toggle_off
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/done"
android:state_checked="false">
<solid
android:color="@color/red" />
</item>
</selector>
试试这个方法。
切换按钮:
<ToggleButton
android:layout_width="50dp"
android:layout_height="50dp"
android:textOn="On"
android:textOff="Off"
android:textSize="20sp"
android:background="@drawable/toggle_day_bg_selector" />
toggle_day_bg_selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:drawable="@drawable/toggle_off"
android:state_checked="false"/>
<item android:drawable="@drawable/toggle_on"
android:state_checked="true"/>
</selector>
toggle_on.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval"
>
<solid android:color="@color/red" />
</shape>
toggle_off.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="@color/green" />
</shape>
希望这会有所帮助。
编辑:
使用此可绘制文件在 ToggleButton
上显示图像
toggle_off.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval" >
<solid android:color="@android:color/holo_green_dark" />
</shape>
</item>
<item android:drawable="@drawable/ic_launcher">
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval" >
<solid android:color="@android:color/holo_green_dark" />
</shape>
</item>
</layer-list>
toggle_on.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval" >
<solid android:color="@android:color/holo_red_dark" />
</shape>
</item>
<item android:drawable="@drawable/ic_launcher">
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval" >
<solid android:color="@android:color/holo_red_dark" />
</shape>
</item>
</layer-list>
快乐编码..
How to change the color of toggleButton in listView?
这就是我设计 toggleButton
<ToggleButton
android:id="@+id/donePic"
android:layout_width="30dp"
android:layout_marginLeft="270dp"
android:layout_height="30dp"
android:background="@drawable/selector"
android:focusable="false"
android:focusableInTouchMode="false"
android:textOff=""
android:textOn=""/>
选择器
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- When selected, use tic -->
<item android:drawable="@mipmap/done"
android:state_checked="true" >
<solid
android:color="@color/red" />
</item>
<!-- When not selected, use un tic-->
<item android:drawable="@mipmap/done"
android:state_checked="false">
<solid
android:color="@color/green" />
</item>
</selector>
我的活动
public View getView(int position, View convertView, ViewGroup parent) { // inside adapter class
ViewHolder holder;
ToggleButton toggle;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.item_to_do, null);
toggle =(ToggleButton)convertView.findViewById(R.id.donePic);
toggle.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
Log.e("A","a");
} else {
// The toggle is disabled
}
}
});
convertView.setTag(holder);
}
holder = (ViewHolder) convertView.getTag();
return convertView;
}
点击toggleButton
时显示log
,但颜色仍然是白色(原来的颜色)。如何更改 toggleButton
的颜色?
已更新
我已经更新了我的代码,但颜色仍然是白色!我想使用 done.png 并且我已经把它放在 res/drawable/done.png
.
选择器
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- When selected, use tic -->
<item android:drawable="@drawable/toggle_on"
android:state_checked="true" >
</item>
<!-- When not selected, use un tic-->
<item android:drawable="@drawable/toggle_off"
android:state_checked="false">
</item>
</selector>
toggle_on
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/done"
android:state_checked="true">
<solid
android:color="@color/green" />
</item>
</selector>
toggle_off
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/done"
android:state_checked="false">
<solid
android:color="@color/red" />
</item>
</selector>
试试这个方法。
切换按钮:
<ToggleButton
android:layout_width="50dp"
android:layout_height="50dp"
android:textOn="On"
android:textOff="Off"
android:textSize="20sp"
android:background="@drawable/toggle_day_bg_selector" />
toggle_day_bg_selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:drawable="@drawable/toggle_off"
android:state_checked="false"/>
<item android:drawable="@drawable/toggle_on"
android:state_checked="true"/>
</selector>
toggle_on.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval"
>
<solid android:color="@color/red" />
</shape>
toggle_off.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="@color/green" />
</shape>
希望这会有所帮助。
编辑:
使用此可绘制文件在 ToggleButton
toggle_off.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval" >
<solid android:color="@android:color/holo_green_dark" />
</shape>
</item>
<item android:drawable="@drawable/ic_launcher">
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval" >
<solid android:color="@android:color/holo_green_dark" />
</shape>
</item>
</layer-list>
toggle_on.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval" >
<solid android:color="@android:color/holo_red_dark" />
</shape>
</item>
<item android:drawable="@drawable/ic_launcher">
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval" >
<solid android:color="@android:color/holo_red_dark" />
</shape>
</item>
</layer-list>
快乐编码..