我试图在我的应用程序(android)中创建完全自定义的单选按钮。 我有3个单选按钮,可以帮助用户选择大小,这就是为什么每个单选按钮的大小不同(L,M,S)。我想要在每个不同尺寸的单选按钮中显示一张图片。当用户选择相关尺寸时,它应该改变它的背景。 我很难忍受它并遇到很多问题...... 这是Radio组(我在每个按钮中尝试了不同的方法来检查什么是正确的) *这是在相对布局
内<RadioGroup
android:id="@+id/pizzaSizeRadioGroup"
android:layout_width="wrap_content"
android:layout_height="32dp"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:orientation="horizontal" >
<RadioButton
android:id="@+id/Largesize"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_marginRight="10dp"
android:adjustViewBounds="true"
android:button="@drawable/size_selector"
android:contentDescription="@string/largesize"
android:padding="1dp"
android:scaleType="fitCenter" />
<RadioButton
android:id="@+id/Mediumsize"
android:layout_width="26dp"
android:layout_height="26dp"
android:adjustViewBounds="true"
android:background="@drawable/size_selector"
android:contentDescription="@string/mediumsize"
android:padding="3dp"
android:scaleType="fitCenter" />
<RadioButton
android:id="@+id/Smallsize"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_marginLeft="10dp"
android:adjustViewBounds="true"
android:button="@drawable/size_selector"
android:contentDescription="@string/smallsize"
android:padding="2dp"
android:scaleType="fitCenter" />
</RadioGroup>
我构建了一个选择器
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:drawable="@drawable/size_select"
android:state_checked="true"
android:state_pressed="true" />
<item
android:drawable="@drawable/size_select"
android:state_pressed="true" />
<item
android:drawable="@drawable/size_select"
android:state_checked="true" />
<item
android:drawable="@drawable/size_unselect" />
</selector>
和XML对象 - size_select
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:drawable="@drawable/pizzasize">
<shape android:shape="rectangle" >
<corners
android:radius="5dp" />
<solid
android:color="#A9D0F5" />
</shape>
</item>
</layer-list>
和size_unselect
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:drawable="@drawable/pizzasize">
<shape android:shape="rectangle" >
<corners
android:radius="5dp" />
<solid
android:color="#FFFFFF" />
</shape>
</item>
</layer-list>
这就是我得到的(左边是L然后是M然后是S)