在形状的波纹有透明背景

我在我的应用程序中使用以下形状

                     

它在我的drawable文件夹中。 现在我将我的应用程序更新为Lollipop,我希望对我使用的圆形按钮给出反馈。 所以在drawable-v21文件夹中我把它改成了一个涟漪选择器:

                    

但遗憾的是,在Lollipop中使用上述drawable不会产生涟漪效应。 是因为

谁能告诉我哪里出错了? 谢谢

Solutions Collecting From Web of "在形状的波纹有透明背景"

经过一些试验和错误后,似乎我误解了selectoritem的层次结构。

以下工作完美。

         

这适用于透明背景:

 < ?xml version="1.0" encoding="utf-8"?>                   

这个答案有点修改: 透明纹波

以下代码适用于自定义形状,带有涟漪效果的透明按钮 –

main_activity_buttons_ripple_with_background.xml

 < ?xml version="1.0" encoding="utf-8"?>                     

styles.xml

  

activity_main.xml中

      

指定纹波掩码时,您可以在透明或半透明背景上产生连锁效果。 纹波掩码是Drawable,但仅使用alpha值设置每个像素的纹波alpha。 以下是以编程方式创建的示例。

 var background = new android.graphics.drawable.GradientDrawable(); background.setShape(android.graphics.drawable.GradientDrawable.RECTANGLE); background.setColor(0x77FFFFFF); // semi-transparent background background.setCornerRadius(10); background.setStroke(3, 0xFF1144FF); // border color var mask = new android.graphics.drawable.GradientDrawable(); mask.setShape(android.graphics.drawable.GradientDrawable.RECTANGLE); mask.setColor(0xFF000000); // the color is irrelevant here, only the alpha mask.setCornerRadius(5); // you probably want the same corner as the background var rippleColorLst = android.content.res.ColorStateList.valueOf( android.graphics.Color.argb(255,50,150,255) ); // aaaand var ripple = new android.graphics.drawable.RippleDrawable(rippleColorLst,background,mask); yourButton.setBackground(ripple); 

(抱歉JavaScript / NativeScript代码,可能有人能理解)