问题描述
我正在尝试向我的按钮添加自定义涟漪效果,但是通过 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 (将#修改为@)