Сглаживание и обновление пути приводят к более толстым линиям, чем ожидалось - PullRequest
1 голос
/ 01 августа 2011

Проблема довольно сложна для объяснения, но здесь идет речь:

Я делаю программу рисования, которая рисует контуры на холсте с текстурированным фоном.Каждый штрих сохраняется как путь, который обновляется, когда пользователь перемещает стилус по экрану.Когда путь обновляется, я вызываю drawpath на холсте.Проблема в том, что при каждом событии перемещения путь рисуется поверх существующей линии на холсте, поэтому сглаживание на нем затемняет существующую линию и делает ее более толстой и более неровной, чем ожидалось.где я храню старый холст (тот, у которого нет активного пути), и поверх него сохраняю другой прозрачный холст.Я очищал бы верхний холст и перерисовывал путь для каждого события перемещения, а затем рисовал оба холста вместе.НО это делает программу настолько медленной, что контуры выглядят ужасно - вы можете сказать, что рисунок отстает от движений стилуса.

Есть ли способ заставить А) рисовать / очищать несколько полотен быстрее или Б)сделать так, чтобы сглаживание не мешало нескольким перерисовкам?

1 Ответ

1 голос
/ 04 августа 2011

разобрался.

Это было так просто, я не могу поверить, что застрял на нем.

«Холст», используемый в onDraw(), автоматически стирается каждый раз, поэтому я просто вызвал canvas.drawPath() с текущим обновляемым путем в функции onDraw(), без дополнительной оплаты.

...