I create a RippleDrawable
like below. But I can\'t change the corner radius of the RippleDrawable.
It doesn\'t have a method like setCornerRadii(float[]
I was facing the same issue as you: how to set a corner radius to a RippleDrawable.
A simple manner to proceed is to use a GradientDrawable
. You can set a radius with setCornerRadius
and then pass the configured instance as the second parameter of the RippleDrawable
constructor.
Here is an example:
ColorStateList pressedStates = ColorStateList.valueOf(Color.BLUE);
GradientDrawable contentDrawable = new GradientDrawable();
contentDrawable.setColor(Color.WHITE);
contentDrawable.setCornerRadius(16);
RippleDrawable rippleDrawable = new RippleDrawable(pressedStates, contentDrawable, null);
container.setBackground(rippleDrawable);