我有两个并排的自定义RadioButtons,可以填充屏幕的宽度。我希望文本和图像位于文本的右侧,以按钮为中心。
drawableRight将图像绘制在按钮右侧,而不是靠近文本。我无法使用drawableEnd,因为我没有Android 4.0
我尝试过使用Spannable,但问题是图像比文字大。我不希望它与文本的底部或基线对齐;我希望它自己在按钮中居中。
我发现的最佳解决方案是制作一个可点击的RelativeLayout,其中包含TextView和ImageView。这使按钮看起来像我想要的那样,但是看起来要做很多工作,并将每个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 :(得分:0)
我继续使用RelativeLayout解决方案。它需要更多的工作而不是看起来值得,但它完美无缺。