#android #canvas
#Android #холст
Вопрос:
Я пытаюсь создать SurfaceView путем чтения в массиве и использования регистровых переключателей для построения canvas.
итак, вопрос в следующем: могу ли я создать цикл canvas, содержащий Y, отслеживая X. загружая растровые изображения с помощью BitmapFactory() в canvas, а затем используя 1 .show() для отображения canvas на экране? или мне нужно будет вызывать рендеринг canvas для каждого из них (или это будет проходить через экран каждый раз, когда я это делаю)?
Ответ №1:
Не уверен, к чему вы клоните, но, во-первых, избегайте использования BitmapFactory
в onDraw
. Вы не хотите выполнять декодирование растровых изображений одновременно с рендерингом. Вы должны заранее загрузить свои растровые изображения и сохранить их в памяти для более быстрого рисования в дальнейшем.
Комментарии:
1. возможно ли было бы создать массив растровых изображений в cnavas, а затем в onDraw просто выполнить рендеринг один раз, или это вызвало бы конфликт при размещении объектов поверх них, или я могу как бы использовать измерение z для размещения объектов поверх других объектов
2. Обычно вам приходится отображать их все при каждом запуске процедуры рисования.
3. поскольку R.java это просто справочная таблица для ресурсов (выводящая целые числа из «имен»), и я понял, сколько памяти может быть занято хранением массива растровых изображений. можно ли было бы вместо этого хранить массив целых чисел (полученный из R.java ) значения, а затем в a для каждого перебирать массив целых чисел, помещая их в холст? n n если это возможно, у меня возникли проблемы с поиском примера построения canvas таким образом
4. Для этого потребуется загрузить растровые изображения с диска во время
onDraw
, что не будет работать должным образом.