Есть ли разница в производительности с / без метода клипа в onDraw () - PullRequest
0 голосов
/ 12 июля 2020

У меня есть настраиваемый вид, в котором dr aws фигура с некоторыми частями залитых градиентом цветных контуров / фигур перекрывается (непрозрачно). 1005 * Обработка перекрывающихся цветных пикселей (нижние цвета в той же точке заменены самым верхним цветом) дороже?

Или использование клипа для исключения частей в отрисовке дороже?

Я пытаюсь написать следующее:

canvas.save();
canvas.clipPath(roundHeadPath);
canvas.clipPath(eyePath, Region.Op.DIFFERENCE);
canvas.clipPath(mouthPath, Region.Op.DIFFERENCE);
canvas.drawPath(roundHeadPath, gradientPaint_for_roundHeadPath);
canvas.restore();

canvas.save();
canvas.clipPath(eyePath);
canvas.drawPath(eyePath, gradientPaint_for_eyePath);
canvas.restore();

canvas.save();
canvas.clipPath(mouthPath);
canvas.drawPath(mouthPath, gradientPaint_for_mouthPath);
canvas.restore();

Я пытаюсь нарисовать небольшую фигуру (примерно 50dp x 50dp ~ 100dp x 100dp) с 8-15 контурами с разными цветами градиента.

Я хочу спросить, экономят ли приведенные выше неудобные коды время / память / рабочую нагрузку для рисования представления или ничего не сохраняют, но ухудшают состояние, просто пишет, что лучше?

canvas.clipPath(roundHeadPath);
canvas.drawPath(roundHeadPath, gradientPaint_for_roundHeadPath);
canvas.drawPath(eyePath, gradientPaint_for_eyePath);
canvas.drawPath(mouthPath, gradientPaint_for_mouthPath);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...