在我的布局中,我有一个带有背景图像的按钮。当我将宽度和高度设置为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" />
设置为包含高度和宽度的内容时
高度和宽度设置为80dp时
答案 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)
答案 3 :(得分:0)
您可以使用9patch或为按钮设置固定的宽度和高度