Android:在形状绘图中使用填充有什么用?

Blc*_*knx 11 android android-button android-view android-drawable

我试着理解Button的默认背景(android 26).

sdk/platforms/android-26/data/res/drawable/btn_default_material.xml

<ripple xmlns:android="http://schemas.android.com/apk/res/android"
        android:color="?attr/colorControlHighlight">
    <item android:drawable="@drawable/btn_default_mtrl_shape" />
</ripple>
Run Code Online (Sandbox Code Playgroud)

引用:

sdk/platforms/android-26/data/res/drawable/btn_default_mtrl_shape.xml:

<?xml version="1.0" encoding="utf-8"?>
<inset xmlns:android="http://schemas.android.com/apk/res/android"
       android:insetLeft="@dimen/button_inset_horizontal_material"
       android:insetTop="@dimen/button_inset_vertical_material"
       android:insetRight="@dimen/button_inset_horizontal_material"
       android:insetBottom="@dimen/button_inset_vertical_material">
    <ripple android:color="?attr/colorControlHighlight">
        <item>
            <shape android:shape="rectangle"
                   android:tint="@color/btn_colored_background_material">
                <corners android:radius="@dimen/control_corner_material" />
                <solid android:color="@color/white" />
                <padding android:left="@dimen/button_padding_horizontal_material"
                         android:top="@dimen/button_padding_vertical_material"
                         android:right="@dimen/button_padding_horizontal_material"
                         android:bottom="@dimen/button_padding_vertical_material" />
            </shape>
        </item>
    </ripple>

</inset>
Run Code Online (Sandbox Code Playgroud)

我理解插图.这是按钮背景图像周围的空间.我不明白填充.背景图像中没有文字.

提出一个思考方法:如果删除padding标签会发生什么?

你可能会得出结论,没有任何事情会发生(我不确定,什么都不会发生).但如果没有任何反应,你有一个问题是什么对它有用?他们为什么把它放在那里?

Ber*_*yle 6

此填充将应用于您在实际应用的填充之上设置背景的视图。如果将此背景设置为按钮,则文本区域将减少此数量。


小智 2

但是您要在按钮中输入文本,按钮文本周围必须有特定的填充,尝试设置您自己的背景,然后设置大文本,文本周围不会有填充,这是为了按钮的外观和感觉。