2
我有两个自定义的RadioButton并排填充屏幕的宽度。我想在文本右侧有一个文本和一个图像,并位于按钮的中心。如何在RadioButton中居中放置图像和文本?
drawableRight绘制按钮右侧的图像方式,而不是靠近文本。我无法使用drawableEnd,因为我没有安卓4.0
我试过使用Spannable,但问题在于图像比文本大。我不希望它与文本的底部或底线对齐;我希望它自己在按钮中居中。
我发现的最好的解决方案是用一个TextView和ImageView作为可点击的RelativeLayout。这使得按钮看起来像我想要的那样,但似乎做了很多工作,并且将每个RelativeLayout编程为RadioGroup中的RadioButton。
有没有更简单的方法,或者我错过了什么?还是应该保持我的RelativeLayout想法?这是我的xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<RelativeLayout
android:id="@+id/first_relativelayout"
android:clickable="true"
android:background="@drawable/radio_button"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:gravity="center_horizontal">
<TextView
android:id="@+id/first_textview"
android:text="@string/first_radiobutton_label"
android:textAppearance="?android:attr/textAppearanceButton"
android:textColor="@android:color/white"
android:layout_centerVertical="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></TextView>
<ImageView
android:contentDescription="@string/image_description"
android:id="@+id/first_imageview"
android:layout_centerVertical="true"
android:src="@drawable/it"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/first_textview">
</ImageView>
</RelativeLayout>
<RelativeLayout
android:id="@+id/second_relativelayout"
android:clickable="true"
android:background="@drawable/radio_button"
android:layout_weight="1"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:gravity="center_horizontal">
<TextView
android:id="@+id/second_textview"
android:text="@string/second_radiobutton_label"
android:textAppearance="?android:attr/textAppearanceButton"
android:textColor="@android:color/white"
android:layout_centerVertical="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></TextView>
<ImageView
android:contentDescription="@string/image_description"
android:id="@+id/second_imageview"
android:layout_centerVertical="true"
android:src="@drawable/it"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/second_textview">
</ImageView>
</RelativeLayout>
</LinearLayout>
我认为如果你发布你的xml,将会更容易描述你在做什么。 – 0gravity 2012-08-03 17:27:21
@ 0gravity请参阅编辑 – Kalina 2012-08-03 17:34:50
好吧,让我看看我是否明白:您的radio_button图像已经有一个文本,并且您希望将textview和图像视图放在radio_button图像的右侧? – 0gravity 2012-08-03 17:48:33