Не пробовал еще Android L, но там такой эффект по-умолчанию во всех View?
Если да, то как ваш эффект будет работать поверх уже имеющегося в Android L?
Может стоит в createRipple() сразу добавить проверку на Android L и не добавлять ваш эффект?
Я так понял, Drawable не рисуется поверх View, а классическим образом устанавливается в качестве background.
Если хочется рисовать Drawable именно поверх View, то вам понадобится ViewOverlay, который, увы, с API 18.
ага, мы в личке уже выяснили.
Это не универсальное решение так как найти вьюху (а тем более viewgroup) у которой виден бэкграунд сложно. Многое нарисованно сверху.
Там надо ViewOverlay (спасибо почитал про него, не знал раньше), или делать обертку ViewGroup в которой уже сначала рисовать ту вьюху к которой приаттачен эффект, а потом сверху этот класс RippleDrawable.
Ну и соответсвенно аттачиться будет это дело примерно так же:
надеюсь автор добьет до конца хорошее начинание )
ps: хотя подумал — как подменить в иерархии старый view на нашу обертку? возможно не оч рабочее решение
изначально только для него, да. но я нашел для себя неплохую библиотеку github.com/cesards/ForegroundViews
она очень простая и содержит только классы FImageView, FLinearLayout, FRelativeLayout, FTextView. соответственно в каждом из них дописана возможность ставить foreground аналогично тому, как это делается во FrameLayout
RippleDrawable для Pre-L устройств