首页 文章

可绘制2种纯色

提问于
浏览
2

我正在尝试创建一个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

    尝试在 <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>
    

相关问题