按钮需要填充父单选按钮

时间:2011-11-09 20:16:42

标签: android layout

我有一个带两个无线电按钮的无线电组。每个按钮都有一个自定义选择器我希望选择器中的drawable可以填充单选按钮的宽度。在不同分辨率下,按钮看起来不同。我没有使用9补丁,所以这是有道理但即使我是我不知道如何使按钮拉伸拉伸。下面是无线电组和选择器的代码。宽度不同于摆弄。

布局xml:                

            <RadioButton
                android:id="@+id/radiomale"
                android:layout_width="126dp"
                android:layout_height="50dp"
                android:minHeight="50dp"
                android:minWidth="126dp"
                android:button="@layout/signupmale"

                />

            <RadioButton
                android:id="@+id/radiofemale"
                 android:layout_width="128dp"
                android:layout_height="50dp"
                android:minHeight="50dp"
                android:minWidth="128dp"
                android:button="@layout/signupfemale" />
        </RadioGroup>

选择器:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:state_window_focused="false"
    android:drawable="@drawable/genre_male_pressed" />
<item android:state_checked="false" android:state_window_focused="false"
    android:drawable="@drawable/genre_male" />
<item android:state_checked="true" android:state_pressed="true"
    android:drawable="@drawable/genre_male_pressed" />
<item android:state_checked="false" android:state_pressed="true"
    android:drawable="@drawable/genre_male" />
<item android:state_checked="true" android:state_focused="true"
    android:drawable="@drawable/genre_male_pressed" />
<item android:state_checked="false" android:state_focused="true"
    android:drawable="@drawable/genre_male" />
<item android:state_checked="false" android:drawable="@drawable/genre_male" android:scaleType="fitXY" />
<item android:state_checked="true" android:drawable="@drawable/genre_male_pressed" android:scaleType="fitXY"/>
</selector>

问题是在按钮之间的不同分辨率间隙测试时。谢谢你的帮助。

1 个答案:

答案 0 :(得分:9)

RadioGroup实际上是LinearLayout的子类,所以你可以做的是使用子节点的layout_weight来控制间距。这可能有点帮助:Linear Layout and weight in Android  这个Android layout_weight comportment

    <RadioGroup
        android:layout_width="match_parent"
        android:layout_height="45dip"
        android:weightSum="1"
        android:orientation="horizontal"
        >

        <RadioButton
            android:layout_width="match_parent"
            android:layout_height="40dip"
            android:layout_weight=".5"
            />

        <RadioButton
            android:layout_width="match_parent"
            android:layout_height="40dip"
            android:layout_weight=".5"
            />

    </RadioGroup>

如果单选按钮上有文字,您将需要使用ninepatch并可能使用左侧或右侧填充。