在android中添加自定义单选按钮

少年意气强不羁,虎胁插翼白日飞。这篇文章主要讲述在android中添加自定义单选按钮相关的知识,希望能为你提供帮助。
我试图获取android中常规按钮的单选按钮效果我在下面有一个简单的android单选按钮

代码是::
activity_main.xml中

< RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > < RadioGroup android:id="@+id/radioGroup1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" > < RadioButton android:id="@+id/radio0" android:layout_width="wrap_content" android:layout_height="wrap_content" android:checked="true" android:text="RadioButton1" /> < RadioButton android:id="@+id/radio1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="RadioButton2" /> < RadioButton android:id="@+id/radio2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="RadioButton3" /> < /RadioGroup> < /RelativeLayout>

如何自定义如下::
谢谢 !
[编辑]使用其中一个答案的代码
但是按钮名称被选择选项如何删除它所掩盖?
{编辑}更多变化最后的改变应该至少我应该知道我从三个单选按钮中选择了哪个按钮....是否可以得到如下所示?

答案添加引用图像或选择器(如下所示)的背景drawable,并使按钮透明:
< RadioButton android:id="@+id/radio0" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/yourbuttonbackground" android:button="@android:color/transparent" android:checked="true" android:text="RadioButton1" />

如果您希望单选按钮在选中时具有不同的资源,请创建选择器背景drawable:
RES /抽拉/ yourbuttonbackground.xml
< selector xmlns:android="http://schemas.android.com/apk/res/android" > < item android:drawable="@drawable/b" android:state_checked="true" android:state_pressed="true" /> < item android:drawable="@drawable/a" android:state_pressed="true" /> < item android:drawable="@drawable/a" android:state_checked="true" /> < item android:drawable="@drawable/b" /> < /selector>

在上面的选择器中,我们引用了两个drawable,ab,这是我们如何创建它们:
res / drawable / a.xml- 选定状态
< shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > < corners android:radius="5dp" /> < solid android:color="#fff" /> < stroke android:width="2dp" android:color="#53aade" /> < /shape>

res / drawable / b.xml- 常规状态
< shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > < corners android:radius="5dp" /> < solid android:color="#fff" /> < stroke android:width="2dp" android:color="#555555" /> < /shape>

关于drawables的更多信息:http://developer.android.com/guide/topics/resources/drawable-resource.html
另一答案我意识到这是一个迟来的答案,但通过developer.android.com看,似乎Toggle按钮将是您的情况的理想选择。
http://developer.android.com/guide/topics/ui/controls/togglebutton.html
当然,您仍然可以使用其他建议来获得背景可绘制以获得您想要的自定义外观。
< ToggleButton android:id="@+id/togglebutton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/custom_button_background" android:textOn="On" android:textOff="Off" />

现在,如果你想进行最后的编辑并在按钮周围产生“光环”效果,你可以使用另一个自定义选择器来做到这一点。
< ?xml version="1.0" encoding="utf-8"?> < selector xmlns:android="http://schemas.android.com/apk/res/android"> < item android:state_selected="true" > < !-- selected --> < shape> < solid android:color="@android:color/white" /> < stroke android:width="3px" android:color="@android:color/holo_blue_bright" /> < corners android:radius="5dp" /> < /shape> < /item> < item> < !-- default --> < shape> < solid android:color="@android:color/white" /> < stroke android:width="1px" android:color="@android:color/darker_gray" /> < corners android:radius="5dp" /> < /shape> < /item> < /selector>

另一答案使用Evan答案中的相同XML文件格式,但只需要一个可绘制文件即可进行格式化。
< RadioButton android:id="@+id/radio0" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/custom_button_background" android:button="@android:color/transparent" android:checked="true" android:text="RadioButton1" />

和你的单独的drawable文件:
< ?xml version="1.0" encoding="utf-8"?> < selector xmlns:android="http://schemas.android.com/apk/res/android" > < item android:state_pressed="true" > < shape android:shape="rectangle" > < corners android:radius="3dip" /> < stroke android:width="1dip" android:color="#333333" /> < solid android:color="#cccccc" /> < /shape> < /item> < item android:state_checked="true"> < shape android:shape="rectangle" > < corners android:radius="3dip" /> < stroke android:width="1dip" android:color="#333333" /> < solid android:color="#cccccc" /> < /shape> < /item> < item> < shape android:shape="rectangle"> < corners android:radius="3dip" /> < stroke android:width="1dip" android:color="#cccccc" /> < solid android:color="#ffffff" /> < /shape> < /item> < /selector>

另一答案我已更新已接受的答案并删除了不必要的东西
我为后续图像创建了XML。
在android中添加自定义单选按钮

文章图片

【在android中添加自定义单选按钮】您的RadioButton的XML代码将是:
< RadioGroup android:id="@+id/daily_weekly_button_view" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginStart="8dp" android:layout_marginLeft="8dp" android:layout_marginTop="8dp" android:layout_marginEnd="8dp" android:layout_marginRight="8dp" android:gravity="center_horizontal" android:orientation="horizontal" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent"> < RadioButton android:id="@+id/radio0" android:layout_width="@dimen/_80sdp" android:gravity="center" android:layout_height="wrap_content" android:background="@drawable/radio_flat_selector" android:button="@android:color/transparent" android:checked="true" android:paddingLeft="@dimen/_16sdp" android:paddingTop="@dimen/_3sdp" android:paddingRight="@dimen/_16sdp" android:paddingBottom="@dimen/_3sdp" android:text="Daily" android:textColor="@color/radio_flat_text_selector" /> < RadioButton android:id="@+id/radio1" android:gravity="center" android:layout_width="@dimen/_80sdp" android:layout_height="wrap_content" android:background="@drawable/radio_flat_selector" android:button="@android:color/transparent" android:paddingLeft="@dimen/_16sdp" android:paddingTop="@dimen/_3sdp" android:paddingRight="@dimen/_16sdp" android:paddingBottom="@dimen/_3sdp" android:text="Weekly" android:textColor="@color/radio_flat_text_selector" /> < /RadioGroup>

radio_flat_selector.xml for background selector:
< ?xml version="1.0" encoding="utf-8"?> < selector xmlns:android="http://schemas.android.com/apk/res/android"> < item android:drawable="@drawable/radio_flat_selected" android:state_checked="true" /> < item android:drawable="@drawable/radio_flat_regular" /> < /selector>

radio_flat_selected.xml for selected button:
< ?xml version="1.0" encod

    推荐阅读