自定义按钮总是太大了

时间:2017-11-17 08:36:26

标签: java android android-layout button

我正在尝试创建一个自定义按钮,其形状尽可能与Android默认按钮的形状相似。问题是,无论我减少多少高度,它都不会低于某个值:

自定义和默认按钮的图像

image

两个按钮的文字大小均为14sp。这里是我自定义按钮的xlm代码:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <padding
        android:left="1dp"
        android:top="1dp"
        android:right="1dp"
        android:bottom="1dp" />
    <solid
        android:color="@color/colorBtnActive" />

    <corners android:radius="2dp" />

    <size
        android:height="16dp"/>

</shape>

所以即使我写<size android:height="50dp"/>,按钮看起来也一样。

这是活动的xlm文件的一部分:

<Button
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/button_selector_selected"
    android:text="custom"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

<Button
    android:id="@+id/button3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="8dp"
    android:text="default"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintLeft_toRightOf="@+id/button"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="0.501" />

我做错了什么?谢谢!

修改 所以根据你的建议我删除了size-tag.Sadly,按钮看起来仍然一样。但是,我注意到buttoms的大小相同,默认按钮看起来更小:screenshot

我怎样才能达到这个效果?

2 个答案:

答案 0 :(得分:2)

当您将任何背景设置为按钮时,其高度将增加检查以下测试用例

  • 当您设置两个按钮背景按钮大小相同时

试试这个你还需要将 android:background 设置为你的默认按钮

curl -XPUT -H "Content-Type: application/json" 'localhost:9200/customer/external/1?pretty' -d '{"name": "John Doe"}'

<强>输出

![enter image description here

未将自定义背景设置为自定义按钮

    <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">


    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="48dp"
        android:background="@drawable/demo"
        android:text="custom"
        />

    <Button
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="8dp"
        android:background="@color/colorAccent"
        android:text="default"
         />
</LinearLayout>

<强>输出

enter image description here

编辑 Android按钮具有默认填充。

检查按钮的默认尺寸

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">


    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="48dp"
        android:text="custom"
        />

    <Button
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="8dp"
        android:background="@color/colorAccent"
        android:text="default"
         />
</LinearLayout>

<强>输出 enter image description here

答案 1 :(得分:1)

Android按钮具有默认填充。

当我在按钮中设置android:background="@android:color/holo_blue_bright"时。 它与自定义Button相同。

 <Button
    android:id="@+id/button3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="8dp"
    android:text="default"
    android:background="@android:color/holo_blue_bright"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintLeft_toRightOf="@+id/button"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="0.501" />

<强>输出

enter image description here