Android Drawable部分填充

时间:2014-12-10 02:46:55

标签: android android-drawable

我想使用自定义drawable给我的按钮圆角。但是,我也希望矩形的底部1/4填充特定的颜色。这可能吗?我怎样才能填补最后一刻?

1 个答案:

答案 0 :(得分:3)

是的,如果您使用Layer List并定义重叠项目,则可以。这是一个例子......

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:top="0dp" android:left="0dp" android:bottom="0dp" android:right="0dp">
        <shape android:shape="rectangle">
            <corner android:radius="5"/>
            <solid android:color="#f000"/>
            <size android:width="200dp"
                android:height="30dp"/>
        </shape>
    </item>

    <item android:top="0dp" android:left="0dp" android:bottom="0dp" android:right="0dp">
        <shape android:shape="rectangle">
            <corner android:radius="5"/>
            <solid android:color="#0f0"/>
            <size android:width="50dp"
                android:height="30dp"/>
        </shape>
    </item>
</layer-list>

您可能需要使用这些值并根据需要进行调整

修改

我认为你不能指定相对值,如百分比。但是,如果这些值因屏幕大小而异,您可以(我建议)将此值移动到维度资源文件中,如下所示...

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <dimen name="button_full_width">200dp</dimen>
    <dimen name="button_quarter_width">50dp</dimen>
    <dimen name="button_height">30dp</dimen>
</resources>

然后在您的drawable中指定这些尺寸,如下所示......

...
<size android:width="@dimen/button_full_width"
                android:height="@dimen/button_height"/>
...

现在,要为不同的屏幕尺寸指定不同的值,您需要通过添加不同的&#34;值来指定针对不同尺寸的资源限定符。资源文件夹并使用不同的值放置维度文件。 Android系统将根据设备屏幕尺寸在运行时获取并加载必要的尺寸...

res/
    values/
            dimens.xml
    values-small/
            dimens.xml
    values-normal/
            dimens.xml
    values-large/
            dimens.xml
    values-xlarge/
            dimens.xml

了解更多信息check out the documentation