Drawing programmatically oval shape with border (corner radius) on Android

  • 0

Drawing programmatically oval shape with border (corner radius) on Android

Category : Uncategorized

I`m trying to draw custom ShapeDrawable with OvalShape, filled with white and with grey border. I created a drawable like this:

ShapeDrawable drawable = new ShapeDrawable(new OvalShape());

But the result of that was: corners problem

enter image description here

The idea is programmatically to create a shape like this but with different colors:

A defined a circle with border from android XML as follow:

Then when a want to change drawable color, i’m applying ColorFilter. For example if I want to change drawable’s red color to blue i do this:

Drawable drawable = context.getResources().getDrawable(R.drawable.name);
drawable.setColorFilter(Color.BLUE, PorterDuff.Mode.SRC_ATOP);

If we want to use StateListDrawable for creating custom selectors from code be aware – StateListDrawable clears applied to drawables filters… apply filter on whole selector by selector.setColorFilter… fix the problem.

Leave a Reply