Есть ли способ нарисовать заполненную область с помощью Canvas без использования Path?
Мне интересно, есть ли способ рисовать заполненные области (например, заполненный многоугольник) с помощью Android Canvas без использования Path
класс и вызов canvas.drawPath(...)
,
Причина, по которой я хочу сделать это без Path
потому что я должен нарисовать очень большие наборы данных и canvas.drawPath(...)
не аппаратно ускоряется и, следовательно, медленно.
Производительность при использовании canvas.drawLines(...)
намного лучше из-за аппаратного ускорения, однако я не нашел способа нарисовать многоугольник, заполненный этим подходом (даже когда все линии соединены).
Даже звонит paint.setStyle(Style.FILL)
не заполнял полигон при использовании drawLines(...)
,
Есть ли способ нарисовать заполненный многоугольник без использования Path
подход?
Или есть какой-либо другой способ улучшить производительность, используя Canvas
?
2 ответа
Возможно, вы захотите взглянуть на OpenGL и использовать его для всех необходимых чертежей. Определенно будет чертовски быстро. Тем не менее, весь ваш код рисования должен быть переписан.
Вам, вероятно, нужно сделать что-то вроде:
Paint red = new Paint();
red.setColor(android.graphics.Color.RED);
red.setStyle(Paint.Style.FILL);
И используйте этот цвет для вашего пути, вместо вашего ARGB. Убедитесь, что последняя точка вашего пути заканчивается первой, это также имеет смысл.