按钮的背景图象得到舒展

时间:2016-05-15 09:50:14

标签: android button android-drawable

在我的布局中,我有一个带有背景图像的按钮。当我将宽度和高度设置为wrap_content时,背景会被拉伸。但是当我使用dp的相同值来设置宽度和高度时,我得到了预期的结果。为什么会这样?

图像最初是圆形的。

           <Button
            android:id="@+id/captureButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:background="@drawable/custom_capture" />

设置为包含高度和宽度的内容时

enter image description here

高度和宽度设置为80dp时

enter image description here

4 个答案:

答案 0 :(得分:1)

使用上面的Button的xml布局,你将有一个带有空文本(“”)的Button,你应该注意到Button的左边和右边的默认填充与顶部和底部不同。 因此,带有空文本的按钮将具有矩形形状,而不是正方形,因此背景将被拉伸。

如果你修正宽度和高度,它将确保按钮总是你想要的尺寸(正方形),所以背景将完美显示。

答案 1 :(得分:0)

因为background用于填充容器 但是,由于Button继承自TextView,您可以使用复合drawable

像这样:

<Button
    android:id="@+id/captureButton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:drawableLeft="@drawable/custom_capture"
/>

替代方案:使用TextView

<TextView
    android:id="@+id/captureButton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:drawableLeft="@drawable/custom_capture"
    android:clickable="true"
/>

答案 2 :(得分:0)

本文将为您提供帮助

http://developer.android.com/tools/help/draw9patch.html

关于9补丁图片以及如何使用它。

答案 3 :(得分:0)

您可以使用9patch或为按钮设置固定的宽度和高度