Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/9: Рейтинг темы: голосов - 9, средняя оценка - 5.00
haribo
41 / 41 / 0
Регистрация: 26.05.2013
Сообщений: 160
1

canvas draw lines, fill color

02.08.2013, 00:36. Просмотров 1888. Ответов 2
Метки нет (Все метки)

Привет!

Есть canvas. На нем рисую три линии методами drawLine();.
Задача: как залить пространство между этими линиями цветом?
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.08.2013, 00:36
Ответы с готовыми решениями:

RuntimeException: Canvas: trying to draw too large
Имеется приложение в виде готового apk, при установке на андроид 7 и старше, а также на девятки...

Игра Color Lines
Здравствуйте, нужно написать игру Color Lines, так вот интересует рисовать сетку 9x9 либо загрузить...

canvas - fill
Привет всем! Меня интересует, почему не работает данный код: ctx.beginPath() ctx.arc(75,75, 75,...

Canvas.Draw
Подскажите, пожалуйста, ответ на такой вопрос: вот я создаю редактор для простенькой игры с помощью...

Canvas.draw
надо нарисовать линию над image1 при этим не повридит image1.picture вот мой код unit...

2
Wenceslaus
Android Developer
130 / 130 / 6
Регистрация: 05.07.2013
Сообщений: 205
02.08.2013, 12:17 2
Нарисовав линии
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
float pointStartX = 0f, pointStopX = 100f,  point1Y = 10f, point2Y = 30f, point3Y = 50f; // координаты точек
 
int colorLine = Color.RED, colorArea = Color.YELLOW; //цвета линий и заливки
 
Paint paint = new Paint();
paint.setStyle(Paint.Style.FILL);
 
// закрашиваем холст
paint.setColor(Color.WHITE);
c.drawPaint(paint);
 
// Рисуем 1-ую линию
paint.setColor(colorLine);
c.drawLine(pointStartX, point1Y, pointStopX, point1Y, paint);
 
// Рисуем 2-ую линию
paint.setColor(colorLine);
c.drawLine(pointStartX, point2Y, pointStopX, point2Y, paint);
 
// Рисуем 3-ую линию
paint.setColor(colorLine);
c.drawLine(pointStartX, point3Y, pointStopX, point3Y, paint);
можно нарисовать прямоугольники с другим цветом, имитируя заливку между ними:
Java
1
2
3
4
5
6
7
// Рисуем прямоугольник меджу 1-ой и 2-ой линиями
paint.setColor(colorArea);
c.drawRect(pointStartX, point1Y+1, pointStopX, point2Y-1, paint);
 
// Рисуем прямоугольник меджу 2-ой и 3-ой линиями
paint.setColor(colorArea);
c.drawRect(pointStartX, point2Y+1, pointStopX, point3Y-1, paint);
или выделять пространство между линиями и заливать нужным цветом:
Java
1
2
3
4
5
6
7
8
9
10
11
// Заливаем область меджу 1-ой и 2-ой линиями
c.save();
c.clipRect(pointStartX, point1Y+1, pointStopX, point2Y-1);
c.drawColor(colorArea);
c.restore();
 
// Заливаем область меджу 2-ой и 3-ой линиями
c.save();
c.clipRect(pointStartX, point2Y+1, pointStopX, point3Y-1);
c.drawColor(colorArea);
c.restore();
1
haribo
41 / 41 / 0
Регистрация: 26.05.2013
Сообщений: 160
02.08.2013, 16:02  [ТС] 3
Супер! Отличный метод!
Но я уже решил свою проблему другим путем.
Рисую Path, а он уже рисуется с закрашенной площадью.
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.08.2013, 16:02

Замена canvas.draw
Как в firemonkey заменить form1.canvas.draw(0,0,bmp)? Такой функции там нет, есть Drawbitmap, но в...

Gif в Canvas.Draw
Доброго времени суток всем. С графикой работать только начинаю и встает сразу вопрос: нужно...

Canvas - Draw. на TImage
Всем привет! У меня вопрос. Решил что на канве рисовать проще чем создавать тучу TImage одного...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.