我想创建一个如下所示的单选按钮:
也就是说,选中时,会显示一个复选标记,表示它已被选中而不是一个点。未选中时,只有橙色背景(或其他颜色)。
页面的黑色背景只是应用程序的背景。
我知道我可以为每个按钮为不同的状态创建不同的drawable,但如果有很多颜色,这不是真正可扩展的。
我原以为我可以添加一个复选标记图像作为android:button
属性的drawable图像,并为单选按钮提供android:background
的不同颜色。但它不能很好地工作,因为背景的形状总是方形的。所以我最终得到一个方形按钮。
实现这样一个按钮的最佳方法是什么?或者,如何将背景形状更改为圆形/椭圆形而不是方形?
这就是我现在所拥有的:
<!-- layout.xml -->
<RadioButton
android:id="@+id/radio1"
android:layout_width="40dp"
android:layout_height="40dp"
android:background="@color/orange"
android:button="@drawable/radio"/>
<!-- drawable/radio.xml -->
<item
android:state_checked="true"
android:drawable="@drawable/checkmark_on_oval"
>
</item>
答案 0 :(得分:3)
尝试这可能对您有所帮助。 放置radio_button属性,如
<RadioButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:button="@null"
android:checked="true"
android:drawableLeft="@drawable/radio_button_selector"
android:drawablePadding="5dp"
android:paddingLeft="2dp" />
在drawable文件夹中输入rb_drawable.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/radio_button_unchecked" android:state_checkable="true"/> <!-- pressed -->
<item android:drawable="@drawable/radio_button_checked" android:state_checked="true"/> <!-- focused -->
<item android:drawable="@drawable/radio_button_unchecked"/> <!-- default -->
</selector>
此处 radio_button_unchecked 和 radio_button_checked 是您的单选按钮的两张图片。
答案 1 :(得分:1)
您可以使用以下代码
创建圆形<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="#9F2200"/>
<stroke android:width="2sp" android:color="#fff" />
</shape>
尝试一下..