2012-08-03 102 views
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> 
+0

我認爲如果你發佈你的xml,將會更容易描述你在做什麼。 – 0gravity 2012-08-03 17:27:21

+0

@ 0gravity請參閱編輯 – Kalina 2012-08-03 17:34:50

+0

好吧,讓我看看我是否明白:您的radio_button圖像已經有一個文本,並且您希望將textview和圖像視圖放在radio_button圖像的右側? – 0gravity 2012-08-03 17:48:33

回答

0

我一直在用RelativeLayout解決方案。它需要更多的工作,似乎應該是值得的,但它的工作完美。

相關問題