Радиус угла, отображаемый градиентом, не работает

#android #android-view #android-canvas #android-drawable

Вопрос:

Я использую функцию GradientDrawable для нанесения радиуса угла на прямоугольник, эта возможность рисования, наконец, установлена в текстовом представлении

 val drawable = GradientDrawable()
drawable.shape = GradientDrawable.RECTANGLE
drawable.setStroke(3, Color.YELLOW)
drawable.setColor(Color.RED)
drawable.cornerRadius = 10.toFloat()
view.setBackgroundDrawable(drawable)
 

У вас есть какие-либо идеи о том, почему это не работает и все еще представляет собой прямоугольник без применения радиуса угла?

Я пробовал звонить mutate() раньше, но все еще не работал, а также пробовал cornerRadii, но ничего 🙁

Комментарии:

1. Перейдите по этой ссылке : developer.android.com/reference/android/graphics/drawable/…

Ответ №1:

Здесь example описано, как создать GradientDrawable фигуру программно.

 GradientDrawable shape = new GradientDrawable();
shape.setShape(GradientDrawable.RECTANGLE);
shape.setColor(Color.RED);
shape.setStroke(3, Color.YELLOW);
 

Для изменения радиуса для всех углов градиента.

 shape.setCornerRadius(15);
 

Для изменения радиуса для определенных углов градиента.

 shape.setCornerRadii(new float[] { 8, 8, 8, 8, 0, 0, 0, 0 });
 

Вы можете использовать этот рисунок в качестве фона, как показано ниже :

 view.setBackgroundDrawable(shape);
 

Для получения более подробной информации нажмите здесь