如何在android中完全自定义单选按钮

时间:2014-08-26 11:24:07

标签: java android mobile radio-button

我试图在我的应用程序(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

这就是我得到的(左边是L然后是M然后是S)

0 个答案:

没有答案