递归火山软件开发平台
标题:
[已解决]不改变背景,如何自定义单选框按钮颜色?
[打印本页]
作者:
blackangeldsf
时间:
2022-4-8 16:48
标题:
[已解决]不改变背景,如何自定义单选框按钮颜色?
本帖最后由 blackangeldsf 于 2022-4-28 15:23 编辑
实在不好意思,总在麻烦大家,主要是找不到相关的资料,没有任何安卓开发的知识和经验。所以问题比较多,请大家见谅。
我想实现图中那样,在不改变背景颜色的情况下,修改单选框样式,但却不知道怎样做。
(, 下载次数: 30)
上传
点击文件名下载附件
我从网络上搜索了一下,有个解决方案就是,在xml文件里设计单选框的样式。第一种方法是:
第一种方式:
1、准备两张图片,一张是选中状态,另一张是未选中状态
2、定义选中与未选中时的xml,代码如下:
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:drawable="@drawable/radio_check"
android:state_checked="true"/>
<item
android:drawable="@drawable/radio_nor"
android:state_checked="false"/>
<item
android:drawable="@drawable/radio_nor"/>
</selector>
复制代码
3、在style.xml中添加自定义主题,代码如下:
<!-- CustomRadiotheme -->
<style name="CustomRadioTheme" parent="@android:style/Widget.CompoundButton.CheckBox">
<item name="android:button">@drawable/radio_style</item>
</style>
复制代码
4、在单选框的xml文件中应用自定义主题,代码如下:
<RadioButton
android:id="@+id/rb_message_radio"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/CustomRadioTheme" />
复制代码
第二种方式:
1、给单选框增加一个selector属性,代码如下:
android:button="@drawable/radiobutton_selector"
复制代码
2、定义selector属性内容,代码如下:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ic_select_yes" android:state_checked="true" android:state_enabled="true"/>
<item android:drawable="@drawable/ic_select_no" android:state_checked="false" android:state_enabled="true"/>
</selector>
复制代码
第三种方式:
使用
setButtonTintList设置单选框样式,代码如下:
if(Build.VERSION.SDK_INT>=21)
{
ColorStateList colorStateList = new ColorStateList(
new int[][]{
new int[]{-android.R.attr.state_enabled}, //disabled
new int[]{android.R.attr.state_enabled} //enabled
},
new int[] {
Color.BLACK //disabled
,Color.BLUE //enabled
}
);
radio.setButtonTintList(colorStateList);//set the color tint list
radio.invalidate(); //could not be necessary
}
复制代码
第四种方式:
仍然是通过xml文件控制,代码如下:
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/radio"
android:checked="true"
android:buttonTint="@color/your_color"/>
复制代码
在color.xml中增加如下内容:
<color name="your_color">#e75748</color>
复制代码
以上四种方法,不知道哪一种是正确的,也不知道如何在火山中实现。请教大家 了,谢谢。
此问题已解决,具体方法请参看
http://bbs.voldp.com/forum.php?mod=viewthread&tid=13789&extra=
作者:
麒麟软件
时间:
2022-4-9 09:17
默认就是这个样式啊,,如果想更改颜色,可以设置主题!
以前我记着谁开发过一个主题样式生成器的。可以解决你的问题。
作者:
blackangeldsf
时间:
2022-4-9 13:13
默认颜色不一样啊
作者:
blackangeldsf
时间:
2022-4-10 17:38
我想在不改变背景的情况下修改单选框的颜色,咋做?
作者:
blackangeldsf
时间:
2022-4-12 08:13
咋没人知道啊,很难吗,大神们
作者:
blackangeldsf
时间:
2022-4-28 11:32
终于知道了,稍后发个帖子,分享下经验。
欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/)
Powered by Discuz! X3.4