修改radiobutton圆圈样式
来源:互联网 发布:模拟基金软件 编辑:程序博客网 时间:2024/05/12 08:12
用Android Studio做安卓开发的时候,使用RadioButton会有系统默认样式,比如:在unchecked状态下是黑色边框+空心圆样式;checked状态下是粉红色边框+中间一个粉红色原点(如下)。
但是有时候我们想要改变前面圆圈的样式,那么怎么修改呢?
可能很多同学网上找到的解决方案,大都是在/drawable下新建一个radio**.xml文件,在<selector>下的<item>下设置当android:state_checked为true/false时,设置android:drawable为/drawable下的不同状态的图片。
那么问题来了,如果我并没有两种状态的图片,比如只是想改一下边框颜色、点击后的颜色这些呢?
其实原理也很简单,而且跟上面的图片替换也很类似,不过上面的是替换/drawable文件夹下的图片,这里介绍的方法是替换/drawable文件夹下的.xml样式文件。步骤如下:
1、先在/drawable文件夹下创建RadioButton状态切换文件,比如radio_button_style.xml
- <?xml version="1.0" encoding="utf-8"?>
- <selector xmlns:android="http://schemas.android.com/apk/res/android">
- <item
- android:state_enabled="true"
- android:state_checked="true"
- android:drawable="@drawable/radiobtn_checked_style"
- />
- <item
- android:state_enabled="true"
- android:state_checked="false"
- android:drawable="@drawable/radiobtn_unchecked_style"
- />
- </selector>
2、好了,上面两个状态其实是/drawable文件夹下的两个.xml布局文件radiobtn_checked_style.xml和radiobtn_unchecked_style.xml。以下分别是两个布局文件的代码:
radiobtn_checked_style.xml:
- <?xml version="1.0" encoding="utf-8"?>
- <shape xmlns:android="http://schemas.android.com/apk/res/android">
- <corners
- android:radius="@dimen/pswRadioButtonWidth"/>
- <solid
- android:color="@color/buttonColorIn"/>
- <size
- android:height="@dimen/pswRadioButtonWidth"
- android:width="@dimen/pswRadioButtonWidth"/>
- <stroke
- android:width="@dimen/pswRadioButtonStrokeWidth"
- android:color="@color/buttonStroke"/>
- </shape>
radiobtn_unchecked_style.xml
- <?xml version="1.0" encoding="utf-8"?>
- <shape xmlns:android="http://schemas.android.com/apk/res/android">
- <corners
- android:radius="@dimen/pswRadioButtonWidth"/>
- <solid
- android:color="@color/buttonColor"/>
- <size
- android:height="@dimen/pswRadioButtonWidth"
- android:width="@dimen/pswRadioButtonWidth"/>
- <stroke
- android:width="@dimen/pswRadioButtonStrokeWidth"
- android:color="@color/buttonStroke"/>
- </shape>
(2)<size>标签,定义RadioButton的大小(宽高)
(3)<corners>标签,定义原来矩形4个直角的完全程度(与width/heigth一致则为圆角)
(4)<solid>为中间填充颜色
(5)<stroke>为边框属性
(当然shape还有一些其他属性,在这里没用上就没写出来)
3、好了,定义好布局,最后在整体布局的RadioButton下把状态切换文件radio_button_style.xml加到android:button属性下即可。比如:
- <RadioButton
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:id="@+id/pswRadioBtn1"
- android:layout_marginTop="20dp"
- android:checked="false"
- android:layout_below="@+id/hintText"
- android:layout_alignEnd="@+id/button1"
- android:clickable="false"
- android:button="@drawable/radio_button_style" />
4、最后展示一下我写的RadioButton,在没有添加切换图片下的自定义效果:
unchecked:
checked:
很像iOS的效果是不是!!
- 修改radiobutton圆圈样式
- 修改RadioButton前面的圆圈样式
- 安卓修改RadioButton圆圈样式(非直接图片替换)
- 去掉RadioButton前面的圆圈样式
- Radiobutton样式修改
- 将radiobutton 左边的圆圈设置自己的样式
- 修改RadioGroup中RadioButton样式
- radiobutton去掉圆圈
- RadioButton修改前面的选项样式
- android radioButton 改变圆圈大小
- Radiobutton样式
- 单选框的圆圈样式修改为复选框的方框样式
- RadioButton - android 自定义RadioButton样式
- Radiobutton去掉默认选中圆圈的问题
- RadioButton去掉默认显示的圆圈
- 消除RadioButton中的自带的圆圈
- radioGroup动态加载radiobutton且radiobutton没有button圆圈按钮
- CSS3圆圈旋转的样式
- 【LeetCode】682. Baseball Game
- 定制vs code
- 欢迎使用CSDN-markdown编辑器
- 图片浏览,手势放大缩小
- 理解TCP序列号(Sequence Number)和确认号(Acknowledgment Number)
- 修改radiobutton圆圈样式
- 有前途的程序员的14个习惯,你有几个?
- vue-resource拦截器
- WOJ-1003
- Shader实例:高级纹理应用
- Java poi导出excel合并标题单元格
- vue2.0用js和jquery设置包含v-if的组件样式无效的的情况
- 高通camera结构(摄像头基础介绍)
- Wireshark的过滤规则