Я создаю приложение для рисования для планшетов, и мне интересно, как лучше всего обрабатывать холст чертежа, относящийся к изменениям ориентации экрана. Программа рисования отслеживает пользовательские входы и сохраняет их в виде векторов, закрепленных координатами X, Y.
Проблема связана с разным размером X, Y в портретных/альбомных режимах. Если у пользователя есть холст, который заполняет экран (минус уведомление и заголовки), а в портретном режиме рисуется около нижней части холста (скажем, в точке 140, 460 на экране 320x480), когда экран перевернут на пейзаж и воссоздан из X, Y векторы, которые я сохранил, точка на 140 460 теперь выходит за пределы экрана (потому что экран теперь 480x320). Аналогично, если они рисуют точки в ландшафте вблизи правого края экрана и откидываются назад к портрету, эти точки будут за пределами.
Я рассмотрел решения этого, и очевидным кажется, что нужно просто заблокировать экран до определенной ориентации. Ряд приложений для рисования, которые я загрузил из Marketplace, обрабатывает его таким образом.
Поскольку я разрабатываю это для планшета, я хотел бы предоставить пользователю гибкость, чтобы рисовать по своему усмотрению, но при этом поддерживать здравый смысл, когда дело доходит до границ экрана и т.д.
Идеи, которые я/пытался включить:
Я подумал о возможности сокрытия заголовка, показывая уведомление, разрешив изменение ориентации, а затем, если экран повернут в альбомный, поворачивая холст обратно к портрету, но когда панель навигации перемещается от того, что было бы сверху в портретной ориентации в правую сторону в ландшафте, я все же получаю те же X, Y ограничивающие проблемы, только в гораздо меньшей степени (ширина панели уведомлений эффективно).
Любые мысли о решениях для этого?
Спасибо.
Внедрить прокрутку/панорамирование и позволить поверхности рисования быть сколь угодно большим, чем размеры родительского представления. Тогда не имеет значения, находится ли устройство в портретной или альбомной ориентации. У вас просто будет вид, действующий как окно на определенной части поверхности чертежа.