可绘制Android上的颜色叠加

时间:2016-08-27 20:08:31

标签: android xml android-layout view android-drawable

我一直在这里按照本教程Medium - Diagonal Cut View获得对角线视图效果

Object

到目前为止代码几乎相同并且效果已经实现,但只适用于Lollipop +,我已搜索但无法找到如何在drawable顶部进行颜色叠加以实现同样的效果和所有尝试已经白费了。

drawable位于RelativeLayout的background属性中。我试图在2个分离的ImageView中创建它,一个用于背景图像,一个用于颜色叠加,但是它没有正确应用对角线样式。

如何为棒棒糖前版本实现此效果?

1 个答案:

答案 0 :(得分:7)

Drawable background = relativeLayout.getBackground();
background.setColorFilter(getResources().getColor(R.color.colorAccent), PorterDuff.Mode.SRC_IN);

您还可以尝试SRC_ATOPMULTIPLY,具体取决于所需的效果。

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

好的,我想我现在更清楚你在问什么了。起初并不完全清楚。

你不是在问每个人说的颜色叠加,或者更确切地说,这不是你的问题所在。您的问题在于您依赖于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>

这就是Jelly Bean的样子。

Tested Example