Имеют ли значение размеры экрана при программировании для планшета Android? - PullRequest
1 голос
/ 25 июня 2011

Я впервые программирую для всего, что не является ПК. Я бы предположил, что такие вещи, как размеры экрана и ориентация будут иметь значение на планшете, но в кусочках базового примера кода, который я обнаружил, ничего такого не было. Вращение и изменение размера происходят автоматически? Если нет, то как сделать приложение полноэкранным?

Ответы [ 2 ]

2 голосов
/ 25 июня 2011

Быстрый ответ: да Android автоматически подгоняет ваши макеты к экрану устройства. Вы можете иметь определенные макеты в зависимости от размера и ориентации устройств. Android управляет тем, какие из них использовать и как обращаться с вращениями.

При повороте планшета происходит событие изменения конфигурации. Если ваше приложение не заявляет, что оно будет обрабатывать это событие лично, то платформа Android будет обрабатывать его для вас. Когда фреймворк обрабатывает это, ваше приложение уничтожается и перезапускается. Это позволяет приложению загружать другой макет (если вы указали другой макет для альбомной / книжной ориентации). То же самое происходит с другими изменениями конфигурации, такими как локаль и многие другие.

Существует два способа сделать приложение полноэкранным. first просто указывает, что приложение поддерживает определенный dpi. Следующий код в манифесте поддерживает все dpis.

<supports-screens android:smallScreens="true" 
                  android:normalScreens="true" 
                  android:largeScreens="true"
                  android:xlargeScreens="true"
                  android:anyDensity="true" />

Второй метод состоит в том, чтобы заявить, что приложение было проверено и может поддерживать большие размеры экрана через targetSdk. Это, однако, удаляет все функции совместимости, которые могли существовать. Например, у меня было приложение, которое выполняло некоторую массивную обработку в потоке пользовательского интерфейса, когда я добавил код targetSdkVersion, чтобы увеличить экран моих приложений, приложение перестало работать. Это произошло потому, что targetSdkVersion не только увеличил размер экрана, но и удалил код совместимости, который позволял внешнему потоку выполнять длинные процессы. Так что это ваше предупреждение. Вот код:

<manifest>
  <uses-sdk android:targetSdkVersion="11" />
</manifest>

Обратите внимание, что целевой SDK также может быть 12. Вот ссылка на версию Android и номер SDK.

1 голос
/ 25 июня 2011

Вы можете сделать упражнение полноэкранным, установив тему в xml или дизайнере макетов, например, Theme.Black.NoTitleBar.Fullscreen предоставит вам полноэкранное действие. Если вы поворачиваете устройство, оно будет использовать ту же схему, если вы не определили альтернативную схему. Я обычно начинаю с создания портретного макета, тогда вы можете просто сделать альбомную версию того же макета, но для планшета вы, вероятно, захотите начать альбомную ориентацию, поскольку это основная ориентация.

Взгляните на это видео, в котором рассматриваются эти и некоторые другие полезные функции редактора макетов: http://youtu.be/Oq05KqjXTvs

Надеюсь, это поможет вам начать!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...