Bouton personnalisé avec fond drawable: Différence de remplissage dans Android 4 vs Android 2.3

Le code suivant permet d'afficher un bouton personnalisé dans Android. Malheureusement, toutes ces valeurs de remplissage à ces différents endroits affecter la façon dont le bouton est affiché que pour Android 2.3, mais sur Android 4.X il n'a pas d'effet, c'est à dire le rembourrage est toujours la même, indépendamment de ce que vous définissez ici. Pourquoi?

La mise en page XML:

<Button
    android:id="@+id/sample_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/button_caption"
    android:padding="6dp"
    android:layout_marginBottom="6dp"
    android:layout_marginRight="6dp"
    style="@style/CustomButton"
    android:textSize="16sp" />

Le style:

<style name="CustomButton">
    <item name="android:layout_gravity">center_horizontal</item>
    <item name="android:padding">6dp</item>
    <item name="android:background">@drawable/custom_button</item>
    <item name="android:textColor">#ffffff</item>
    <item name="android:gravity">center</item>
    <item name="android:textStyle">bold</item>
</style>

Le drawable:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true">
        <shape>
            <solid
                android:color="#60ff0000" />
            <stroke
                android:width="1dp"
                android:color="#ffffff" />
            <corners
                android:radius="4dp" />
            <padding
                android:left="6dp"
                android:top="6dp"
                android:right="6dp"
                android:bottom="6dp" />
        </shape>
    </item>
    <item>
        <shape>
            <solid
                android:color="#90ff0000" />
            <stroke
                android:width="1dp"
                android:color="#ffffff" />
            <corners
                android:radius="4dp" />
            <padding
                android:left="6dp"
                android:top="6dp"
                android:right="6dp"
                android:bottom="6dp" />
        </shape>
    </item>
</selector>

Quand j'ai mis toutes ces valeurs de remplissage pour une petite valeur comme le 2, le bouton apparaît presque sans un rembourrage sur Android 2.3.3 (probablement correct) mais avec un rembourrage qui est encore très importante sur Android 4.X (probablement à tort). Quelqu'un peut-il savoir pourquoi?

source d'informationauteur caw