我想在多个按钮上正确应用相同的可绘制波纹。但这并没有发生,因为涟漪效应只会应用到最后一个按钮上。我还在波纹可绘制内部使用了渐变可绘制。在每个按钮上都可以正常工作。只是波纹效果没有应用到除最后一个按钮以外的任何按钮上。它在api级别8上也不起作用。我知道,此方法在api级别21之前在api上不起作用。但是我还没有找到有关动态按钮设计的任何教程。

我正在进行on-create事件中的所有操作。我无法在on-create事件之外编写代码,也不能针对遇到的这种特殊情况使用任何XML。

这是输出:

java - 如何在Java中动态地为多个按钮应用一个可绘制的涟漪图?-LMLPHP

这是代码:

android.graphics.drawable.GradientDrawable gd_btone = new android.graphics.drawable.GradientDrawable();

gd_btone.setCornerRadius(4);
gd_btone.setStroke(2, Color.parseColor("#ffffff"));
gd_btone.setColor(Color.parseColor("#232323"));

android.graphics.drawable.RippleDrawable ripdr = new android.graphics.drawable.RippleDrawable(new android.content.res.ColorStateList(new int[][]{new int[]{}}, new int[]{ Color.parseColor("#888888")}), gd_btone, null);

button1.setBackground(ripdr);
button2.setBackground(ripdr);
button3.setBackground(ripdr);
button4.setBackground(ripdr);


另外,有人可以帮助我使这段代码与api level 8向下兼容,以及如何在此drawable上设置边距吗?
我不是Android开发人员,所以对此我不太了解。

最佳答案

我看到的是,即使单击了其他按钮,滴水效果也会应用到最后一个按钮。因此,我认为RippleDrawable类不支持您正在寻找的行为;单个实例一次只能绑定到一个按钮。

我建议仅创建四个单独的RippleDrawable实例。

免责声明:我尚未使用RippleDrawables,但这完全基于您提供的输出和Android开发的个人经验。

关于java - 如何在Java中动态地为多个按钮应用一个可绘制的涟漪图?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52791709/

10-11 22:35
查看更多