xml – 如何将drawableTop和文本垂直居中在Android的Button上?

前端之家收集整理的这篇文章主要介绍了xml – 如何将drawableTop和文本垂直居中在Android的Button上?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的按钮定义如下:
<Button
 android:drawableTop="@drawable/ico"
 android:gravity="center"
 android:id="@+id/StartButton2x2"
 android:text="@string/Widget2x2StartBtnLabel"
 android:layout_width="0dip" 
 android:layout_height="fill_parent"
 android:layout_weight="1" 
 android:background="@drawable/widgetbtn_bg"
/>

问题是“drawableTop”图像与Button视图的顶部边框对齐.我想把它(连同文字标签)垂直放在按钮上.

“android:gravity”似乎只能在文本标签上工作.它不影响’drawableTop’定位.

我可以使用“android:paddingTop”垂直居中,但这似乎并不是个好主意.我想这不会在不同的屏幕分辨率/大小上正常工作.

新答案

显然我误解了这个问题.答案是使用:

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    style="@android:style/Widget.Button">

…并在其中包含一个ImageView和一个TextView.

老回答

这是一个想法:将你的按钮包装在一个FrameLayout中.像:

<FrameLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:foreground="@drawable/ico"
    android:foregroundGravity="center">
    <Button
        android:gravity="center_vertical"
        android:id="@+id/StartButton2x2"
        android:text="@string/Widget2x2StartBtnLabel"
        android:layout_width="0dip"
        android:layout_height="fill_parent"
        android:layout_weight="1" 
        android:background="@drawable/widgetbtn_bg" />
</FrameLayout>

Btw,android是什么?layout_width =“0dip”?看起来不对

猜你在找的XML相关文章