2015-08-10 3 views
-1

Я прочитал много вещей, поддерживающих несколько устройств. Сейчас я реализовал это в моем apllication, я сделал следующие папки, как показано ниже:Реализация нескольких макетов для поддержки нескольких экранов не работает

  1. макета (папка по умолчанию)
  2. макета большого
  3. расположение нормального
  4. макет небольшой
  5. макета XLarge
  6. макета XXLarge

и объявили это в XML файл

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

но не работает, мои все устройства собирания макета из обычной папки макета, что должна быть проблемой здесь?

А также скажите, что мне нужно сделать для поддержки устройств xxxhdpi?

+0

Ваши имена папок неверны, должны быть такими, как res/layout-sw600dp, пожалуйста, проверьте другой вопрос, например [это] (http://stackoverflow.com/questions/9513910/how-to-give-layouts- folder-name-to-support-multiple-screen-size-in-android) – alp

+0

Можете ли вы обновить свой вопрос, чтобы мы могли видеть, как ваша папка res? – Tsunaze

+0

@Tsunaze это следующим образом расположения (папка по умолчанию) макет большого макета нормального макета небольшой макет XLarge макет XXLarge –

ответ

2

В соответствии с примечанием, написанным в этой документации Supporting Multiple Screens, старые группы были устаревшими (малыми, нормальными, большими и большими), поэтому мы должны перейти на новый метод, определенный в Android 3.2.

Примечание: Начиная с Android 3.2 (уровень API 13), эти размерные группы являются осуждается в пользу нового метода для управления размерами экрана на основе на доступной ширине экрана. Если вы разрабатываете Android 3.2 и выше, см. Декларация планшета для Android 3.2 для получения более информации.

Старый способ классификации:

xlarge screens are at least 960dp x 720dp 
large screens are at least 640dp x 480dp 
normal screens are at least 470dp x 320dp 
small screens are at least 426dp x 320dp 

Новый путь: Новые классификаторы конфигурации для размера экрана (введенные в Android 3.2).

320dp: a typical phone screen (240x320 ldpi, 320x480 mdpi, 480x800 hdpi, etc). 
480dp: a tweener tablet like the Streak (480x800 mdpi). 
600dp: a 7” tablet (600x1024 mdpi). 
720dp: a 10” tablet (720x1280 mdpi, 800x1280 mdpi, etc). 

res/layout-sw320dp/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) 

См. Документацию Supporting Multiple Screens для получения дополнительной поддержки!

Таким образом, здесь также возникнет странная проблема, связанная с управлением различными мобильными устройствами (а не планшетами). У нас есть устройства, такие как 3,5 '5', 5,5 'и так далее.

Таким образом, чтобы добиться поддержки нескольких мобильного экрана (точно) вы можете создавать различные значения папки в вашем приложении, как показано ниже

enter image description here

Затем объявить все значения измерений в файле dimens.xml как ваши потребности , и используйте значения из файла измерения (это означает, что в ваших xml-файлах нет жестко закодированных значений). Каждое значение должно быть получено из размера файла, такого как @ dimen /) Например, на вашем домашнем экране у вас есть остальное поле 5dp и размер текста 24sp и некоторые другие значения измерения.

Поэтому вам нужно создать файл dimens.xml в папке значений, как показано ниже.

<dimen name="button_height">120dp</dimen> 
<dimen name="buttonTextSize">15dp</dimen> 
<dimen name="button_margin">10dp</dimen> 
<dimen name="buttonHeight_normal">37dp</dimen> 
<dimen name="left_padding">5dp</dimen> 

, то вы можете использовать то же самое в файле XML, как показано ниже

<Button 
     android:id="@+id/rButton" 
     android:layout_width="wrap_content" 
     android:layout_height="@dimen/button_height" 
     android:layout_marginTop="@dimen/button_margin" 
     android:textSize="@dimen/buttonTextSize" 
     android:padding="@dimen/left_padding" /> 

таким же образом, вы можете создавать различные файлы dimens.xml в разных значениях папок, а затем вы можете создать такую ​​же размерность имена & изменить требуемые значения дп зр & .. так что при загрузке XML-файл, он будет принимать значения размеров из папки, требуемые значения

link Это может помочь вам более подробно s

+0

, но я прочитал некоторые, где это относится к таблицам –

+0

Я прочитал этот документ почти в 1000 раз, и вы можете видеть в этом разделе, посмотрите на таблицу 1 для макета, они говорят это Размер \t small \t Ресурсы для экранов небольшого размера. normal \t Ресурсы для экранов нормального размера. (Это базовый размер.) big \t Ресурсы для экранов большого размера. xlarge \t Ресурсы для экранов большого размера. –

+0

что вы говорите для планшетов, пожалуйста, ссылка тщательно в вас ответ –

0

Способ использования: deprecated from android 3.1. Читать MulitScreen Support

Папка макет должен быть как это

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) 

Прочитайте документ тщательно.

+0

Я хочу поддерживать разные мобильные телефоны, а не таблетки, на самом деле мое приложение не для планшетов –

Смежные вопросы