Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 5.00
haribo
41 / 41 / 3
Регистрация: 26.05.2013
Сообщений: 160
#1

canvas draw lines, fill color - Программирование Android

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

Привет!

Есть canvas. На нем рисую три линии методами drawLine();.
Задача: как залить пространство между этими линиями цветом?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.08.2013, 00:36     canvas draw lines, fill color
Посмотрите здесь:
Android Android draw items hulf circle
Android Генерация Color Palette
Android Цвет текста и Color State List
Изменение backgraund color при нажатии Android
Canvas Android
Растянуть Canvas Android
Android Карта на Canvas
Android Столкновения на canvas
Использование canvas Android
Android canvas Android
Android Intent в Canvas
canvas.rotate Android

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Wenceslaus
Android Developer
130 / 130 / 4
Регистрация: 05.07.2013
Сообщений: 205
02.08.2013, 12:17     canvas draw lines, fill color #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();
haribo
41 / 41 / 3
Регистрация: 26.05.2013
Сообщений: 160
02.08.2013, 16:02  [ТС]     canvas draw lines, fill color #3
Супер! Отличный метод!
Но я уже решил свою проблему другим путем.
Рисую Path, а он уже рисуется с закрашенной площадью.
Ответ Создать тему
Опции темы

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