Android Canvas - ограничить область рисования - PullRequest
1 голос
/ 06 февраля 2020

Так что на моем холсте у меня есть несколько прямоугольных angular областей, где я рисую разные растровые изображения. Иногда растровые изображения выходят за пределы своих областей. Я хочу, чтобы эти растровые изображения были обрезаны, поэтому рисуется только часть растрового изображения внутри его области.

Я уверен, что могу вычислить его вручную (srcRect и dstRect) ... Но разве нет более простого решения? ?

Я нашел clipBounds, но, похоже, он никак не ограничивает область рисования.

1 Ответ

1 голос
/ 06 февраля 2020

То, что вы хотите, это Canvas.clipRect(). Конечно, вам нужно знать границы отсечения прямоугольника, но вам не нужно беспокоиться о вычислении пользовательского srcRect.

. Чтобы использовать, save() Canvas, выполните один drawBitmap(), затем restore(), чтобы вернуть исходное состояние отсечения:

canvas.save();
canvas.clipRect(...);
canvas.drawBitmap(...);
canvas.restore();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...