Я новичок в Android.
Я рисую растровые изображения, линии и фигуры на холсте внутри метода Canvas canvas на моем представлении. Я ищу помощь в том, как реализовать плавную прокрутку в ответ на перетаскивание пользователем. Я искал, но не нашел никаких учебников, чтобы помочь мне в этом.
Ссылка на Canvas, по-видимому, говорит о том, что если Canvas построен из Bitmap (например, bmpBuffer, скажем), то все, что нарисовано на Canvas, также нарисовано на bmpBuffer. Можно ли использовать bmpBuffer для реализации прокрутки... возможно, скопировать его обратно на холст, сдвинутый на несколько пикселей за раз? Но если я использую Canvas.drawBitmap для вывода bmpBuffer обратно в Canvas, сдвинутого на несколько пикселей, не будет ли bmpBuffer поврежден? Возможно, поэтому я должен скопировать bmpBuffer в bmpBuffer2, а затем вернуть bmpBuffer2 обратно в Canvas.
Более простой подход заключался бы в том, чтобы нарисовать линии, фигуры и т.д. прямо в буфер Bitmap, затем нарисовать этот буфер (со сдвигом) на Canvas, но пока я вижу различные методы: drawLine(), drawShape() и т.д. недоступны для рисования в битмап... только на холсте.
Могу ли я иметь 2 холста? Один из них будет построен из битового массива буфера и будет использоваться просто для построения линий, фигур и т.д., А затем бит-карта буфера будет нарисована на другой холст для отображения в представлении?
Я должен приветствовать любой совет!
Ответы на подобные вопросы здесь (и на других сайтах) относятся к "blitting". Я понимаю концепцию, но не могу найти ничего о "blit" или "bitblt" в документации на Android. Являются ли Canvas.drawBitmap и Bitmap.Copy эквивалентами Android?