grz*_*aks 15 xml layout android button
我将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"
/>
Run Code Online (Sandbox Code Playgroud)
问题是'drawableTop'图像与Button视图的顶部边框对齐.我想将它(与文本标签一起)垂直放在按钮上.
'android:gravity'似乎只适用于文本标签.它不会影响'drawableTop'定位.
我能够使用'android:paddingTop'垂直居中 - 但这似乎不是一个好主意.我猜它在不同的屏幕分辨率/大小上无法正常工作.
Fel*_*lix 12
新答案
显然我误解了这个问题.答案是使用:
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
style="@android:style/Widget.Button">
Run Code Online (Sandbox Code Playgroud)
......并附上一个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>
Run Code Online (Sandbox Code Playgroud)
顺便问一下,怎么了android:layout_width="0dip"?似乎不对.
'android:gravity'似乎只适用于文本标签.它不会影响'drawableTop'定位.
正确.
我能够使用'android:paddingTop'垂直居中 - 但这似乎不是一个好主意.我猜它在不同的屏幕分辨率/大小上无法正常工作.
您可以通过使用维度资源来解决此问题.
但是,除了通过填充之外,您不能"在Button上垂直居中drawableTop和文本".可绘制的功能Button不是很容易配置.