按钮高度与自定义背景

时间:2015-01-23 13:37:26

标签: android android-ui

我有两个按钮,其中一个具有默认样式,另一个具有自定义背景可绘制:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle">
    <corners android:radius="4dp" />
    <solid android:color="@color/green" />
</shape>

最后按钮如下所示:

enter image description here 因此默认按钮在某种程度上小于具有自定义背景的按钮,尽管它们具有相同的属性:

    <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/bg_button_rounded_green"
            android:text="Positive"
            android:textColor="@color/white"/>

    <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Negative"/>

自定义背景似乎改变了minHeight。如何使这个按钮看起来一样?

4 个答案:

答案 0 :(得分:0)

btn_default_normal.9.png是Android中从任何特定平台设置为默认Button小部件的默认图像。在SDK安装中找到此文件并复制到res文件夹。

查找android-sdk\platforms\android-APILEVEL\data\res

的路径

答案 1 :(得分:0)

默认按钮具有默认的9补丁背景,具有自己的边距,阴影等(不同的Android版本不同)。您必须为两个按钮使用自定义背景,或采用默认的9补丁背景之一,并为正按钮创建类似的bg。

答案 2 :(得分:0)

默认的Holo Android按钮图形是一个特意包含填充的PNG。如果你按住,你会发现按钮周围出现了一个光晕......它占用了那个间距。

答案 3 :(得分:0)

按钮的默认9补丁图像使用可绘制填充。为了在你自己的drawable中模仿它,你可以使用insets。类似的东西:

<inset xmlns:android="http://schemas.android.com/apk/res/android"
     android:drawable="@drawable/bg_button_rounded_green" android:insetBottom="10dip"
     android:insetLeft="10dip" android:insetRight="10dip" android:insetTop="10dip" />

我会告诉你应该是什么值。