我想有一个以icon+text为中心的安卓按钮。我使用drawableLeft属性来设置图像,如果按钮的宽度为"wrap_content"
,效果会很好,但我需要拉伸到最大宽度,所以我使用了宽度"fill_parent"
。这会将我的图标直接移动到按钮的左侧,并且我希望图标和文本都在按钮内部居中。
我已经尝试设置填充,但这只允许给出一个固定值,所以它不是我需要的。我需要让icon+text居中对齐。
<Button
android:id="@+id/startTelemoteButton"
android:text="@string/start_telemote"
android:drawableLeft="@drawable/start"
android:paddingLeft="20dip"
android:paddingRight="20dip"
android:width="fill_parent"
android:heigh="wrap_content" />
对如何实现这一点有什么建议吗?
发布于 2011-12-05 22:06:51
android:drawableLeft总是保持android:paddingLeft与左边框的距离。当该按钮未设置为android:width="wrap_content“时,它将始终挂在左侧!
在Android4.0(API14级)中,您可以使用android:drawableStart属性在文本的开头放置一个可绘制的内容。我想出的唯一向后兼容的解决方案是使用ImageSpan创建Text+Image Spannable:
Button button = (Button) findViewById(R.id.button);
Spannable buttonLabel = new SpannableString(" Button Text");
buttonLabel.setSpan(new ImageSpan(getApplicationContext(), R.drawable.icon,
ImageSpan.ALIGN_BOTTOM), 0, 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
button.setText(buttonLabel);
在我的例子中,我还需要调整Button的android:gravity属性,使其看起来居中:
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minHeight="32dp"
android:minWidth="150dp"
android:gravity="center_horizontal|top" />
发布于 2014-10-14 18:20:31
我知道我在回答这个问题时来晚了,但这对我有帮助:
<FrameLayout
android:layout_width="match_parent"
android:layout_height="35dp"
android:layout_marginBottom="5dp"
android:layout_marginTop="10dp"
android:background="@color/fb" >
<Button
android:id="@+id/fbLogin"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center"
android:background="@null"
android:drawableLeft="@drawable/ic_facebook"
android:gravity="center"
android:minHeight="0dp"
android:minWidth="0dp"
android:text="FACEBOOK"
android:textColor="@android:color/white" />
</FrameLayout>
我从这里找到了这个解决方案:Android UI struggles: making a button with centered text and icon
发布于 2016-07-26 19:04:48
我通过添加左右填充来调整它,如下所示:
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:id="@+id/btn_facebookact_like"
android:text="@string/btn_facebookact_like"
android:textColor="@color/black"
android:textAllCaps="false"
android:background="@color/white"
android:drawableStart="@drawable/like"
android:drawableLeft="@drawable/like"
android:gravity="center"
android:layout_gravity="center"
android:paddingLeft="40dp"
android:paddingRight="40dp"
/>
https://stackoverflow.com/questions/3634191
复制相似问题