我想使用简单的形状状态选择器来更改RadioButton的指示器。我创建了以下名为moon_radio.xml的XML,并将其放在drawable
文件夹中。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:state_pressed="false">
<shape
android:shape="oval">
<solid android:color="@color/moon_light_plate" />
</shape>
</item>
<item android:state_checked="false" android:state_pressed="false">
<shape
android:shape="oval">
<stroke
android:width="2dp"
android:color="@color/moon_light_plate" />
</shape>
</item>
<item android:state_checked="true" android:state_pressed="true">
<shape
android:shape="oval">
<solid android:color="@color/moon_light_plate_pressed" />
</shape>
</item>
<item android:state_checked="false" android:state_pressed="true">
<shape
android:shape="oval">
<stroke
android:width="2dp"
android:color="@color/moon_light_plate_pressed" />
</shape>
</item>
</selector>
然后我在布局中的RadioButton上指定android:button="@drawable/moon_radio"
属性。由于某种原因,这不起作用。怎么了?
*编辑* 可能是我解释不清楚,但我不想更改背景,我想更改指标,即默认点。
这就是我得到的:
这就是我想得到的&#34;
答案 0 :(得分:2)
您应该在android:button
RadioButton
属性中指定此内容,这是正确的,您只需要添加android:background="@android:color/transparent"
答案 1 :(得分:1)
您需要定义RadioButton
,如下所示 -
<RadioButton
android:id="@+id/radio0"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/moon_radio"
android:button="@android:color/transparent"
android:checked="true"
android:text="RadioButton1" />
如果设置android:button="@android:color/transparent"
,设置radioButton背景将符合您的目的。
答案 2 :(得分:0)
要查看默认的RadioButton使用的内容,请根据应用主题,查看其中一个API的源代码。例如,您可以从SDK Manager中安装API 18的“Androids源代码”。它将被放置在:
sdk\platforms\android-18\data\res\drawable\
找到 btn_radio.xml , btn_radio_holo_dark.xml 和 btn_radio_holo_light.xml 文件。它们具有不同状态的状态选择器,您可以看到它们使用的是哪些png文件。
您可以在drawable-mdpi \目录中找到这些png文件,看看它们的样子(如 btn_radio_on.png )。
然后,您可以将btn_radio.xml文件复制到drawable目录,并使其用于不同状态的图像(或可绘制形状)。
查看其中一个文件,我认为你的状态是错误的(比如checked = true pressed = false)。我没有在默认文件中看到,除了最后一个只检查了= true。它从上到下遍历选择器。因此,如果没有选择它上面的那个,它只会到达底部。
而且,你将你的选择器drawable放在android:button属性中。