Макет для планшетів в Android


78

Я хотів би створити різні макети для планшетів та телефонів в Android. Де я повинен розмістити ресурси макета, щоб зробити цю диференціацію?

Відповіді:


165

Я знаю, що це старе запитання, але заради цього ... Згідно з документацією , вам слід створити такі папки активів, як ця

res/layout/main_activity.xml           # For handsets (smaller than 600dp available width)
res/layout-sw600dp/main_activity.xml   # For 7” tablets (600dp wide and bigger)
res/layout-sw720dp/main_activity.xml   # For 10” tablets (720dp wide and bigger)

Які папки макета мені потрібно створити для пристроїв Nexus 9 та Nexus 10?
Dhaval Khant

Спробуйте перемістити вміст Nexus 10 у папку для sw800dp. Nexus 9 продовжуватиме приймати сигнали з папки sw768dp
Faisal Naseer

43

Якщо ви використовуєте в коді концепцію Fragment (означає багатошаровий макет), то найкраще використовувати wdp замість swdp

res/layout-w600dp/main_activity.xml   # For 7” tablets (600dp wide and bigger)
res/layout-w720dp/main_activity.xml   # For 10” tablets (720dp wide and bigger)
res/layout-w600dp-land/main_activity.xml   # For 7” tablets in landscape (600dp wide and                  bigger)
res/layout-w720dp-land/main_activity.xml   # For 10” tablets in landscape (720dp wide and bigger)

Зверніться до таблиці для розуміння wdp

Table 2. New configuration qualifers for screen size (introduced in Android 3.2). У наступному посиланні http://developer.android.com/guide/practices/screens_support.html


23

Що стосується макетів, то, на мою думку, ви можете диференціювати лише наведене нижче:

res/layout/my_layout.xml            // layout for normal screen size
res/layout-small/my_layout.xml      // layout for small screen size
res/layout-large/my_layout.xml      // layout for large screen size
res/layout-large-land/my_layout.xml // layout for large screen size in landscape mode

Ви можете знайти більше інформації про те, що можна додати до структури папок, щоб розрізнити різні налаштування тут .

Найбільша проблема полягає в тому, що Android SDK насправді офіційно не включає планшети. Сподіваємось, це буде вирішено в наступній версії Android. В іншому випадку вам просто потрібно переконатися, що ви використовуєте макети масштабування, які будуть працювати для будь-якого розміру екрана.


Я думаю, що проблема не в SDK. Наприклад, телефон має розмір екрану 480x800 hdpi, що достатньо для розміщення планшета. Якщо ваш додаток найкраще працює з розкладкою планшета, тоді в цьому випадку користувачам не потрібно мати планшет і все одно мати його переваги. Тож не потрібно розрізняти планшет / телефон. Посилання, яке ви вказали, вирішує це ідеально. Дякую.

це підтримується нижче Android 3.2
Lalit Sharma

4

Згідно з документацією, вам слід створити такі папки активів, як ця .. повний список ......

res/layout/main_activity.xml  // For handsets (smaller than 600dp available width)
res/layout/main_activity.xml  // For handsets (smaller than 600dp available width)
res/layout-sw600dp/main_activity.xml  // For 7” tablets (600dp wide and bigger) 
res/layout-sw720dp/main_activity.xml  // For 10” tablets (720dp wide and bigger)
res/layout-sw600dp-land/main_activity.xml  // For 7” tablets in landscape (600dp wide and bigger)
res/layout-sw720dp-land/main_activity.xml  // For 10” tablets in landscape (720dp wide and bigger)

0

Це джерело також надає способи виклику будь-яких ресурсів на основі конфігурацій пристрою, таких як: мова, ширина / висота екрана, напрямок макета, орієнтація екрану ... тощо.

Ви повинні бути обережними, роблячи ресурс за замовчуванням як згадане джерело, наприклад, викликаючи високоякісні значки для планшетів.


0

Спадне меню "Орієнтація для попереднього перегляду" в Android Studio, як показано нижче, може допомогти створити швидкий альбомний макет та розмітку планшета xmls. Він також створювати окремі папки , тобто layout-landі layout-sw600dpдля цих варіантів компоновки і розмістити XMLs макета в цих папках. введіть тут опис зображення

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.