Android Ripple:其他应用如何在不影响视图原始颜色的情况下使其波纹变得如此透明

时间:2015-09-02 16:55:25

标签: android rippledrawable

当您查看yPlan或Google Play商店等其他应用时,它们对按钮的涟漪效果就像浅灰色或黑色,不会改变整个按钮的颜色。

我想要同样的效果。

这是我尝试但不一样的

这是我的色彩控制亮点:它是一个带有99%alpha的灰色

    <color name="colorHighlight">#fc8c969f</color>

这是我按钮的涟漪抽屉

<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    android:color="?android:colorControlHighlight">
    <item android:id="@android:id/mask" android:drawable="@android:color/white"/>
    <item android:drawable="@color/colorAccentWith92PercentOpacity"/>
</ripple>

请注意,drawable是将按钮的颜色设置为黄色,因为我无法使用android:background两次

1 个答案:

答案 0 :(得分:6)

<?xml version="1.0" encoding="utf-8"?>
<!--Use an almost transparent color for the ripple itself-->
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    android:color="#22000000"> 

    <!--Use this to define the shape of the ripple effect (rectangle, oval, ring or line). The color specified here isn't used anyway-->
    <item android:id="@android:id/mask">
        <shape android:shape="rectangle">
            <solid android:color="#000000" /> 
        </shape>
    </item>

    <!--This is the background for your button-->
    <item>
        <!--Use the shape you want here-->
        <shape android:shape="rectangle">
            <!--Use the solid tag to define the background color you want (here yellow)-->
            <solid android:color="#ffff00"/> 
            <!--Use the stroke tag for a border-->
            <stroke android:width="1dp" android:color="#ffff00"/>
        </shape>
    </item>
</ripple>