如何中心图标和文本在Android按钮的宽度设置为“填充父”

我想要一个Android按钮,图标文字居中。我使用drawableLeft属性来设置图像,如果按钮的宽度为“wrap_content”,但我需要拉伸到最大宽度,所以我使用宽度“fill_parent”。这将我的图标直接移动到按钮的左边,我想要图标和文本的中心在按钮内。

我尝试设置填充,但这只允许给一个固定的值,所以它不是我需要的。我需要有图标文本在中心对齐。

<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" />

任何建议,如何我可以实现呢?

android:drawableLeft总是保持android:paddingLeft作为距离左边框的距离。当按钮未设置为android:width =“wrap_content”时,它将始终挂在左边!

使用Android 4.0(API级别14),您可以使用android:drawableStart属性在文本的开头放置一个drawable。我提出的唯一向后兼容的解决方案是使用ImageSpan创建一个文本图像可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" />
http://stackoverflow.com/questions/3634191/how-to-center-icon-and-text-in-a-android-button-with-width-set-to-fill-parent

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:如何中心图标和文本在Android按钮的宽度设置为“填充父”