通过 XML 添加涟漪效应没有效果

问题描述

我正在尝试向我的按钮添加自定义涟漪效果,但是通过 XML 文件将其添加为背景完全没有效果

ripple_effect.xml

<?xml version="1.0" encoding="UTF-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    android:color="#4DB6D7FF">

    <item android:id="@android:id/mask">
        <shape android:shape="rectangle">
            <corners android:radius="3dp" />
        </shape>
    </item>

</ripple>

我尝试在代码中重新创建它并得到了这样的东西

ColorStateList list = new ColorStateList(
        new int[][] {StateSet.WILD_CARD},new int[] {(Color.parseColor("#4DB6D7FF") & 0x00ffffff) | 0x19000000}
);

int r = Utils.dpToPx(3); //Any conversion method from dp to pixels
Drawable mask = new ShapeDrawable(new RoundRectShape(new float[] {r,r,r},null,null));

rippledrawable drawable = new rippledrawable(list,mask);

以编程方式将 rippledrawable 设置为我的按钮作为背景似乎可以添加所需的效果

btn.setBackground(drawable);

所以问题很简单:为什么 代码 变体有效,但 XML 变体 不行 ?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)