Есть ли способ нарисовать заполненную область с помощью 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. Убедитесь, что последняя точка вашего пути заканчивается первой, это также имеет смысл.

Другие вопросы по тегам