[英]Styling RadioButton using XML drawable
我想使用簡單的形狀狀態選擇器更改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"
屬性。 由於某些原因,這不起作用。 怎么了?
*編輯*可能我已經解釋不清楚,但是我不想更改背景,我想要更改指示器,即默認點。
這是我得到的:
這就是我想要得到的”
您應該在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使用的內容,請進入其中一個API的源代碼。 例如,從SDK Manager可以為API 18安裝“ Android SDK的源”。它將放置在:
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目錄中,並使其針對不同狀態使用圖像(或drawable形狀)。
查看這些文件之一,我認為您的狀態是錯誤的(例如,checked = truePressed = false)。 我沒有在默認文件中看到該文件,除了最后一個文件只有check = true的文件。 它從上到下遍歷選擇器。 因此,如果未選擇上方的選項,它只會到達底部的選項。
並且,將選擇器可繪制放置在android:button屬性中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.