android RadioButton图像和文字

时间:2013-01-25 03:10:38

标签: android xml radio-button

我使用单选按钮创建自定义标签主机,工作正常,但现在我需要在顶部显示图标,并在图标下方显示文字,

这就是我现在所拥有的: currentState

但这是我需要的: desiredState

这是我的代码:

    <RadioButton
        android:id="@+id/rad_home"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:background="@drawable/rad_background"
        android:button="@drawable/home_icon"
        android:gravity="center"
        android:text="Home"
        android:textColor="@drawable/text_background"
        android:textSize="@dimen/rad_text_size" >


    </RadioButton>

    <RadioButton
        android:id="@+id/rad_1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:background="@drawable/rad_background"
        android:button="@null"
        android:gravity="center"
        android:text="Menu"
        android:textColor="@drawable/text_background"
        android:textSize="@dimen/rad_text_size" />

    <RadioButton
        android:id="@+id/rad_2"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:background="@drawable/rad_background"
        android:button="@null"
        android:gravity="center"
        android:text="VIP"
        android:textColor="@drawable/text_background"
        android:textSize="@dimen/rad_text_size" />

    <RadioButton
        android:id="@+id/rad_3"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:background="@drawable/rad_background"
        android:button="@null"
        android:gravity="center"
        android:text="About"
        android:textColor="@drawable/text_background"
        android:textSize="@dimen/rad_text_size" />

    <RadioButton
        android:id="@+id/rad_4"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:background="@drawable/rad_background"
        android:button="@null"
        android:gravity="center"
        android:text="Whats On"
        android:textColor="@drawable/text_background"
        android:textSize="@dimen/rad_text_size" />
</RadioGroup>

所以即时设置按钮图标:

  

机器人:按钮= “@空”

for when为空

  

机器人:按钮= “@绘制/ home_icon”

图标图片, 我应该用它来设置图标吗? 如何组织它,因为我需要它? [图标在顶部,文字底部]

我试过里面的布局,但似乎不喜欢它?

如何做到这一点?

谢谢!

3 个答案:

答案 0 :(得分:9)

试试这个:使用drawableTop来显示图标

 <RadioButton
    android:id="@+id/rad_home"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_weight="1"
    android:background="@drawable/rad_background"
    android:button="@null"
    android:drawableTop="@drawable/home_icon"
    android:gravity="center"
    android:text="Home"
    android:textColor="@drawable/text_background"
    android:textSize="@dimen/rad_text_size" >

答案 1 :(得分:1)

您可以使用textview: -

 <TextView
            android:id="@+id/home_text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_below="@id/rad_home"
            android:layout_marginTop="10dp"
            android:text="home" />

答案 2 :(得分:1)

亲爱的我可以建议您尝试将按钮文本组合而不是简单的按钮。在您的代码中尝试

 android:background="@drawable/rad_background"
        android:button=**"@null"**

而是使用我的代码并显示像这样的组合按钮。

                <Button
                    android:id="@+id/btnCrop"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_vertical"
                    android:layout_marginLeft="10dp"
                    android:background="@android:color/transparent"
                    android:drawableTop="@drawable/icon_crop_selector"
                    android:text="@string/btnCrop"
                    android:textAppearance="@style/TextButton"
                    android:textColor="#ffffff" />

这对你有帮助。