对齐单选按钮左上方可绘制

时间:2014-07-08 14:06:22

标签: android xml

我想创建一个这样的单选按钮:

http://i.stack.imgur.com/bfVYy.png

我在我的XML布局中使用了android:drawableTop,但是这样drawable不是左边水平对齐,而是居中。

 <RadioGroup 
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">
                <RadioButton 
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:drawableTop="@android:drawable/btn_radio"
                    android:gravity="left"
                    android:button="@null"
                    android:text="RADIO 1"
                    android:onClick="onRadioButtonClicked"/>
                <RadioButton 
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="RADIO 2"
                    android:button="@null"
                    android:gravity="center"
                    android:drawableTop="@android:drawable/btn_radio"
                    android:onClick="onRadioButtonClicked"/>
        </RadioGroup>

1 个答案:

答案 0 :(得分:0)

我会告诉你一个简单的答案。但我认为这很有帮助。拍摄带有文字的两张图片。

写一个选择器:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/checked_radiobutton" android:state_checked="true"/>
    <item android:drawable="@drawable/unchecked_radiobutton" android:state_checked="false"/>

</selector>

将这两个单选按钮添加到可绘制文件中。然后在radiobutton中可以简单地添加按钮标签。

                          <RadioButton
                            android:id="@+id/lastvalue"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:button="@drawable/autochoose_radio"
                            android:checked="true"
                            android:gravity="center_vertical"
                            android:text="@string/lastvalue"
                            android:textSize="15sp" />

代替文字你不会写任何东西。我认为这是一个完美的解决方案。