Это хорошая идея, чтобы нарисовать на
холст намного больше экрана и
используйте отсечение, чтобы отобразить только
соответствующая часть?
Лучший вопрос может быть, у вас есть другие варианты. Некоторые могут возразить, что это плохая идея, поскольку вы собираетесь поддерживать память в рабочем состоянии, когда это не имеет отношения к тому, что происходит в пользовательском интерфейсе. Однако, исходя из моего опыта работы с Canvas
, я думаю, вы обнаружите, что это должно сработать очень хорошо. Теперь, если вы пытаетесь сохранить «5 квадратных миль» холста в памяти, вам определенно придется искать лучший способ управлять им.
Как бы я создал больший холст и
как бы я выбрал, какие части должны
быть нарисованным?
Я ожидаю, что вы создадите свой собственный метод "прокрутки", когда пользователь коснется экрана, переопределив метод onTouchEvent
. По сути, вам нужно отслеживать начальную точку X и Y и просто отслеживать это значение при перемещении Canvas
на экране. Для перемещения Canvas
имеется ряд встроенных функций, таких как translate
и scale
, которые можно использовать для перемещения Canvas
по X и Y, а также для масштабирования, когда пользователь увеличивает или уменьшает .