Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 更改选择器drawable中的填充_Android_Selector_Drawable_Padding - Fatal编程技术网

Android 更改选择器drawable中的填充

Android 更改选择器drawable中的填充,android,selector,drawable,padding,Android,Selector,Drawable,Padding,我正在尝试更改自定义可绘制资源中按钮的填充,并在选择器中重用它。 更改drawable似乎不是问题,但应用程序始终使用不同drawable中的最高填充: button_inactive.xml <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <item> <shape a

我正在尝试更改自定义可绘制资源中按钮的填充,并在选择器中重用它。 更改drawable似乎不是问题,但应用程序始终使用不同drawable中的最高填充:

button_inactive.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

<item>
    <shape android:shape="rectangle" >
        <solid android:color="#FF4d681f" />
    </shape>
</item>
<item
    android:bottom="2dp"
    android:left="2dp"
    android:right="2dp"
    android:top="2dp">
    <shape android:shape="rectangle" >
        <solid android:color="#FFFFFFFF" />

        <padding
            android:bottom="5dp"
            android:top="5dp" />
    </shape>
</item>
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
    <shape android:shape="rectangle" >
        <solid android:color="#FF4D681F" />
    </shape>
</item>
<item
    android:bottom="2dp"
    android:left="2dp"
    android:right="2dp"
    android:top="2dp">
    <shape android:shape="rectangle" >
        <solid android:color="#FF8da32d" />

        <padding
            android:bottom="10dp"
            android:top="10dp" />
    </shape>
</item>

按钮u active.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

<item>
    <shape android:shape="rectangle" >
        <solid android:color="#FF4d681f" />
    </shape>
</item>
<item
    android:bottom="2dp"
    android:left="2dp"
    android:right="2dp"
    android:top="2dp">
    <shape android:shape="rectangle" >
        <solid android:color="#FFFFFFFF" />

        <padding
            android:bottom="5dp"
            android:top="5dp" />
    </shape>
</item>
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
    <shape android:shape="rectangle" >
        <solid android:color="#FF4D681F" />
    </shape>
</item>
<item
    android:bottom="2dp"
    android:left="2dp"
    android:right="2dp"
    android:top="2dp">
    <shape android:shape="rectangle" >
        <solid android:color="#FF8da32d" />

        <padding
            android:bottom="10dp"
            android:top="10dp" />
    </shape>
</item>

按钮选择器.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:state_pressed="false" android:drawable="@drawable/button_active"/>
<item android:state_focused="true" android:state_pressed="true" android:drawable="@drawable/button_active"/>
<item android:state_focused="false" android:state_pressed="true" android:drawable="@drawable/button_active"/>
<item android:drawable="@drawable/button_inactive"/>

问题是我的按钮在所有状态下都使用10dp填充,包括“非活动”状态

有没有一种解决方案可以让它只与XML一起工作,或者最好是通过编程来定制按钮?

试试这个

<solid android:color="#ffffff" />

<stroke
    android:width="2dp"
    android:color="@android:color/black" />

<padding
    android:bottom="10dp"
    android:left="10dp"
    android:right="10dp"
    android:top="10dp" />

<corners
    android:bottomLeftRadius="6dp"
    android:bottomRightRadius="6dp"
    android:topLeftRadius="6dp"
    android:topRightRadius="6dp" />



将android:variablePadding=“true”属性添加到选择器


我不确定当您使用图层列表时,它是如何工作的(以及是否工作),但是我还是决定将它分享给任何想要答案的人(就像我一样)。

我用我的一个可绘制按钮尝试了它。正常的那个没有填充物,我在按下的那个上面加了填充物。即使在显示正常的填充物时,它也会使用按下的填充物。我用同样的方式使用.png文件也有问题。我把压过的比普通的大,但尺寸不变。这太糟糕了。安卓:variablePadding是一种有缺陷的atribute,从来没有起过作用。