我想制作两个大小相同的单选按钮,其中包含自定义背景,文本和文本右侧的图像。由于它们与标准“按钮”有多么不同,我使用可点击的“RelativeLayout”制作它们。
文本和图像具有不同的高度,但我希望每个文本和图像在按钮中垂直居中。我还希望文本+图像的组合在按钮中水平居中。第二部分是我遇到的麻烦;它偏离中心,靠近左侧。在下图中,左侧是我想要的,但右侧是正在发生的事情。其中一个按钮(文本较长的按钮)上的图像也会调整为较小的尺寸......虽然按钮右侧仍有足够的空间。
这是我的代码:
<LinearLayout
android:baselineAligned="false"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<RelativeLayout
android:id="@+id/my_button"
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/button_textview"
android:text="@string/button_label"
android:textAppearance="?android:attr/textAppearanceButton"
android:layout_centerVertical="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></TextView>
<ImageView
android:contentDescription="@string/image_description"
android:id="@+id/button_imageview"
android:layout_centerVertical="true"
android:src="@drawable/my_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/button_textview">
</ImageView>
</RelativeLayout>
<RelativeLayout
... same thing for the second button ...
</RelativeLayout>
</LinearLayout>
我做错了什么?
答案 0 :(得分:1)
将此用作按钮:
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_gravity="center_horizontal"
>
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="MyButton"/>
<ImageView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:src="@drawable/my_image"/>
</LinearLayout>
现在,您可以将其放在其他父视图中。要将布局属性应用于上方按钮,请将这些属性放在上方按钮的外部<LinearLayout>
标记中。
替代:
您可以使用以下属性设置要在TextView
的边(左,右,上,下)绘制的自定义图像:
android:drawableLeft="@drawable/my_image"
答案 1 :(得分:0)
原来解决方案是添加
android:paddingRight="0dip"
奇怪的是,即使我没有在那里放任何填充物。