可绘制Android上的颜色叠加

Iva*_*que 3 xml android view android-layout android-drawable

我一直在这里遵循这个教程中 - 对角线切割视图来获得对角线视图效果

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

<item android:drawable="@color/colorPrimary"  />

<item>
    <bitmap
        android:src="@drawable/bebe"
        android:gravity="center"
        android:alpha="0.1" />
</item>

<item android:top="260dp"
    android:bottom="-100dp"
    android:left="0dp"
    android:right="-260dp">
    <rotate
        android:fromDegrees="-10"
        android:pivotX="0%"
        android:pivotY="100%">
        <shape
            android:shape="rectangle">
            <solid
                android:color="@android:color/white"/>
        </shape>
    </rotate>
</item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)

到目前为止,代码几乎相同并且效果已经实现,但只适用于Lollipop +,我已经搜索过但无法找到如何在drawable上面进行颜色叠加以实现同样的效果并且我的所有尝试都在徒劳的.

drawable位于RelativeLayout的background属性中.我试图在2个分离的ImageView中创建它,一个用于背景图像,一个用于颜色叠加,但是这不适用于对角线样式.

如何才能为棒棒糖前版本实现这种效果?

WIl*_*JBD 9

Drawable background = relativeLayout.getBackground();
background.setColorFilter(getResources().getColor(R.color.colorAccent), PorterDuff.Mode.SRC_IN);
Run Code Online (Sandbox Code Playgroud)

你也可以尝试SRC_ATOPMULTIPLY取决于所需的效果.

=========编辑========================

好吧,我想我现在能更好地理解你的要求.起初并不完全清楚.

你不是在问每个人说的颜色叠加,或者更确切地说,这不是你的问题所在.您的问题在于您依赖alpha属性.

做到这一点,我已经重新排序的元素,使花形那张图像的顶部,而不是使图像透明的,我们做的彩色形状的颜色有一个指定的alpha字节.您可以根据需要更改颜色和alpha.

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <item>
        <bitmap
            android:gravity="center"
            android:src="@drawable/muse15fence_750"/>
    </item>
    
    <item>
        <shape android:shape="rectangle">
            <solid android:color="#cc3F51B5"/>
        </shape>
    </item>



    <item
        android:bottom="-100dp"
        android:left="0dp"
        android:right="-260dp"
        android:top="260dp">
        <rotate
            android:fromDegrees="-10"
            android:pivotX="0%"
            android:pivotY="100%">
            <shape
                android:shape="rectangle">
                <solid
                    android:color="@android:color/white"/>
            </shape>
        </rotate>
    </item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)

这就是Jelly Bean的样子.

经过测试的例子