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