可绘制2种纯色

时间:2017-09-29 10:17:07

标签: android android-layout layer-list

我试图创建一个drawable作为我的一个布局的背景,并且不能让它显示两个分开在中间的纯色。

目前,我尝试使用背景为实色的图层列表,以及半透明白色矩形的叠加层,以沿着矩形的上半部分对原始纯色背景颜色进行着色。尽管如此,它并不需要这样做。

除非您能找到立即转换的方法,否则渐变将无效。

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
    <shape android:shape="rectangle">
        <size android:height="@dimen/basic_runners_height"></size>
        <solid android:color="@color/brb_orange"
            android:gravity="bottom"></solid>
    </shape>
</item>
<item>
    <shape android:shape="rectangle">
        <size android:height="@dimen/basic_runners_height_halved"></size>
        <solid android:color="@color/md_white_1000"
            android:alpha="127"
            android:gravity="top"></solid>

    </shape>
</item>

所以,我对此的理解是应该有两种形状,一种是另一种形状的一半。第一个形状覆盖整个可绘制的橙色,另一个是白色,约50%透明(α= 127),占据可绘制的一半并向顶部倾斜。

drawable的预览是全白的,没有一丝橙色。我做错了什么?

编辑:

是的,为了使这更简单,我已经将有色的颜色添加到我的@color中,这样我就不用担心透明度了。 XML如下所示:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:top="@dimen/basic_runners_height_halved">
    <shape android:shape="rectangle" >
        <size android:height="@dimen/basic_runners_height_halved" />
        <solid android:color="@color/brb_orange_tint" />
    </shape>
</item>

<item android:top="@dimen/basic_runners_height">
    <shape android:shape="rectangle" >
        <size android:height="@dimen/basic_runners_height" />
        <solid android:color="@color/brb_orange" />
    </shape>
</item>

但是这甚至没有做到这一点...... runners_height_halved是runners_height的dp的一半,但是这并没有将它分成中间。也许10%的可绘制颜色是有色颜色,并且由于某种原因它们被颠倒以使着色颜色位于底部。这应该是最简单的事情......

1 个答案:

答案 0 :(得分:0)

尝试在<item>标记中使用填充(顶部,左侧,右侧,底部)。希望它有所帮助

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
    <shape android:shape="rectangle">
        <size android:height="@dimen/basic_runners_height"></size>
        <solid android:color="@color/brb_orange"
            android:gravity="bottom"></solid>
    </shape>
</item>
<item android:top="10dp"
        android:left="10dp"
        android:right="10dp"
        android:bottom="10dp">
    <shape android:shape="rectangle">
        <size android:height="@dimen/basic_runners_height_halved"></size>
        <solid android:color="@color/md_white_1000"
            android:alpha="127"
            android:gravity="top"></solid>

    </shape>
</item>