Java 使用XML drawable设置RadioButton的样式
我想用一个简单的形状状态选择器来改变RadioButton的指示器。我创建了以下名为moon_radio.XML的XML,并将其放在Java 使用XML drawable设置RadioButton的样式,java,android,xml,Java,Android,Xml,我想用一个简单的形状状态选择器来改变RadioButton的指示器。我创建了以下名为moon_radio.XML的XML,并将其放在可绘制的文件夹中 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_checked="true" android:stat
可绘制的
文件夹中
<?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\u radio”
属性。由于某些原因,这不起作用。怎么了
*编辑*
可能我解释的不清楚,但我不想改变背景,我想改变指示器,即默认点
这就是我得到的:
这就是我想要的”
您应该在
RadioButton
的android:button
属性中指定该属性。如果该属性正确,您只需添加android:background=“@android:color/transparent“
您应该在android:button
中指定该属性,如果RadioButton
的属性正确,您只需添加android:background=“@android:color/transparent”
您应该在android:button
中指定这一点,如果RadioButton
的属性正确,您只需添加android:background=“@android:color/transparent”
您应该在RadioButton
的android:button
属性中指定该属性是否正确您只需添加android:background=“@android:color/transparent”
您需要像下面一样定义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背景将符合您的目的 您需要定义如下所示的单选按钮-
<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背景将符合您的目的 您需要定义如下所示的单选按钮-
<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背景将符合您的目的 您需要定义如下所示的单选按钮-
<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背景将符合您的目的 要查看默认RadioButton根据应用程序主题使用了什么,请进入其中一个API的源代码。例如,您可以从SDK管理器安装API 18的“Android SDK源代码”。它将被放置在:
sdk\platforms\android-18\data\res\drawable\
查找btn\u radio.xml、btn\u radio\u holo\u dark.xml和btn\u radio\u holo\u light.xml文件。它们有用于不同状态的状态选择器,您可以看到它们使用的png文件
您可以在drawable mdpi\目录中找到这些png文件,以查看它们的外观(如btn\u radio\u on.png)
然后,您可以将btn_radio.xml文件复制到您的可绘制目录中,并使其使用不同状态的图像(或可绘制形状)
查看其中一个文件,我认为您的状态是错误的(比如checked=true=pressed=false)。我在默认文件中看不到这一点,除了最后一个刚刚选中=true的文件。它从上到下通过选择器。因此,只有当上面的那些没有被选中时,它才会到达底部
然后,将选择器drawable放在android:button属性中。要查看默认RadioButton使用了什么,请根据应用程序主题进入其中一个API的源代码。例如,您可以从SDK管理器安装API 18的“Android SDK源代码”。它将被放置在:
sdk\platforms\android-18\data\res\drawable\
查找btn\u radio.xml、btn\u radio\u holo\u dark.xml和btn\u radio\u holo\u light.xml文件。它们有用于不同状态的状态选择器,您可以看到它们使用的png文件
您可以在drawable mdpi\目录中找到这些png文件,以查看它们的外观(如btn\u radio\u on.png)
然后,您可以将btn_radio.xml文件复制到您的可绘制目录中,并使其使用不同状态的图像(或可绘制形状)
查看其中一个文件,我认为您的状态是错误的(比如checked=true=pressed=false)。我在默认文件中看不到这一点,除了最后一个刚刚选中=true的文件。它从上到下通过选择器。因此,只有当上面的那些没有被选中时,它才会到达底部
然后,将选择器drawable放在android:button属性中。要查看默认RadioButton使用了什么,请根据应用程序主题进入其中一个API的源代码。例如,您可以从SDK管理器安装API 18的“Android SDK源代码”。它将被放置在:
sdk\platforms\android-18\data\res\drawable\
查找btn\u radio.xml、btn\u radio\u holo\u dark.xml和btn\u radio\u holo\u light.xml文件。它们有用于不同状态的状态选择器,您可以看到它们使用的png文件
您可以在drawable mdpi\目录中找到这些png文件,以查看它们的外观(如btn\u radio\u on.png)
然后,您可以将btn_radio.xml文件复制到您的可绘制目录中,并使其使用不同状态的图像(或可绘制形状)
查看其中一个文件,我认为您的状态是错误的(比如checked=true=pressed=false)。我在默认文件中看不到这一点,除了最后一个刚刚选中=true的文件。它从上到下通过选择器。因此,只有当上面的那些没有被选中时,它才会到达底部
然后,将选择器drawable放在android:button属性中。要查看默认RadioButton使用了什么,请根据应用程序主题进入其中一个API的源代码。