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