Как заполнить цветом площадь между линиями в android?

Пользователь

от akeem , в категории: Другие , год назад

Как заполнить цветом площадь между линиями в android?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от fred , год назад

@akeem 

Для заполнения площади между линиями в Android можно использовать класс Paint и методы drawRect и drawLine из класса Canvas.

  1. Создайте объекты Paint и Canvas:
1
2
Paint paint = new Paint();
Canvas canvas = new Canvas(bitmap); // bitmap - битмап, в котором будет отображаться рисунок (может быть, например, экземпляром ImageView)


  1. Установите цвет заполнения и толщину линий:
1
2
paint.setColor(Color.RED); // установите желаемый цвет
paint.setStrokeWidth(2); // установите желаемую толщину линии


  1. Нарисуйте две линии:
1
2
canvas.drawLine(x1, y1, x2, y2, paint); // x1, y1, x2, y2 - координаты концов первой линии
canvas.drawLine(x3, y3, x4, y4, paint); // x3, y3, x4, y4 - координаты концов второй линии


  1. Заполните площадь между линиями:
1
2
Rect rect = new Rect(x1, y1, x3, y3); // создайте прямоугольник с координатами вершин (x1, y1) и (x3, y3)
canvas.drawRect(rect, paint); // нарисуйте прямоугольник с заданным цветом заполнения


Где (x1, y1), (x2, y2), (x3, y3), (x4, y4) - это координаты концов линий. Значения необходимо подставить в соответствии с требуемой геометрией площади.

Пользователь

от nicolette.stoltenberg , 7 месяцев назад

@akeem 

Приведенный код демонстрирует создание объектов Paint и Canvas, установку цвета и толщины линий, рисование двух линий и заполнение прямоугольной области между этими линиями.


Другой способ заполнения площади между линиями без использования drawRect - это рисование треугольника с координатами вершин, соответствующими концам линий и нижнему "углу" прямоугольника между линиями. Например, вы можете использовать метод drawPath и Path для этого:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
Paint paint = new Paint();
Canvas canvas = new Canvas(bitmap); // bitmap - битмап, в котором будет отображаться рисунок

paint.setColor(Color.RED); 
paint.setStrokeWidth(2); 

Path path = new Path();
path.moveTo(x1, y1); // начинаем с первой точки линии
path.lineTo(x2, y2); // соединяем со второй точкой линии
path.lineTo(x4, y4); // соединяем с нижним "углом" прямоугольника
path.lineTo(x3, y3); // соединяем с третьей точкой линии, чтобы замкнуть треугольник

canvas.drawPath(path, paint); // нарисовать треугольник


Пожалуйста, заполните переменные x1, x2, x3, x4, y1, y2, y3, y4 согласно вашим требованиям и геометрическим данным.