减少自定义按钮大小

时间:2014-12-03 07:02:44

标签: android android-button

我创建了一个自定义按钮并将其放在drawable文件夹中,代码如下:

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid android:color="#f50057" />
    <padding
        android:left="30dp"
        android:top="0dp"
        android:right="30dp"
        android:bottom="0dp" />
    <corners android:radius="5dp" />
</shape>

我使用上面作为按钮的背景,按钮占据了太多的空间垂直,尽管我已经将填充为0dp。能否请你帮我减少按钮垂直占用的空间。

布局代码:

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/start_button"
    android:background="@drawable/myrect"
    android:focusable="false"
    android:text="Start"
    android:layout_below="@+id/expandview"
    android:layout_centerHorizontal="true" />

enter image description here

3 个答案:

答案 0 :(得分:2)

只需在布局XML中指定所需的按钮高度和宽度即可。即

<Button
    android:layout_width="50dp"
    android:layout_height="50dp"
    android:id="@+id/start_button"
    android:background="@drawable/myrect"
    android:focusable="false"
    android:text="Start"
    android:layout_below="@+id/expandview"
    android:layout_centerHorizontal="true" />

如果你想在drawable ....那么

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid android:color="#f50057" />
    <padding
        android:left="30dp"
        android:top="0dp"
        android:right="30dp"
        android:bottom="0dp" />
    <corners android:radius="5dp" />
    <size 
        android:height="50dp"
        android:width="50dp" />
</shape>

答案 1 :(得分:2)

android按钮视图具有最小高度,因此如果你想要更小的东西,你必须用

覆盖它
android:minHeight

就像在这段代码中一样:

<Button
    android:id="@+id/btn_cancel"
    android:layout_width="120dp"
    android:layout_height="wrap_content"
    android:layout_marginRight="10dp"
    android:minHeight="10dp"
    android:paddingBottom="5dp"
    android:paddingTop="5dp"
    android:text="@string/cancel"
    android:textColor="@color/white" />

然后你可以明显看出layout_height参数,但是如果你的值低于48 dp(默认的最小高度)它就不会起作用。例如,Button视图的最小宽度为64 dp。

答案 2 :(得分:2)

您可以使用 size 标记指定drawable和按钮高度的大小,width将是wrap_content

<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#f50057" />
<padding
    android:left="30dp"
    android:top="0dp"
    android:right="30dp"
    android:bottom="0dp" />
<corners android:radius="5dp" />
<size android:height="50dp"
    android:width="50dp"/>
</shape>

或者您可以为此特定按钮指定高度和宽度

只需在布局xml中指定所需的按钮高度和宽度即可。即

<Button
android:layout_width="50dp"
android:layout_height="50dp"
android:id="@+id/start_button"
android:background="@drawable/myrect"
android:focusable="false"
android:text="Start"
android:layout_below="@+id/expandview"
android:layout_centerHorizontal="true" />