Создание приложения для Android с поддержкой нескольких экранов

Я создаю приложение на Android, которое должно поддерживать несколько экранов.

Для этого я прочитал много ответов и один из них, который мне больше всего нравится, заключается в том, что я могу создавать разные папки в папке res , следуя имени,

Для небольших экранов макет ,

Для больших экранов макет-большой ,

Для особо больших экранов layout-xlarge

И мне нужно создать разные макеты для разных экранов с тем же именем. Например, mylayout.xml

И я должен поместить следующий код в файл manifest.xml

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

И, наконец, мне просто нужно написать следующие строки в файле Activity,

  setContentView(R.layout.mylayout); 

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

Но это не происходит в моем случае. Он принимает только макет, определенный в папке макета .

Пожалуйста, может кто-нибудь объяснить мне, почему это происходит, и как я могу решить эту проблему, чтобы мое приложение могло эффективно работать на всех экранах размеров.

Solutions Collecting From Web of "Создание приложения для Android с поддержкой нескольких экранов"

Попробуйте:

  • макета sw320dp
  • макета sw480dp
  • макета sw600dp
  • макета sw720dp

вместо

  • Макет-маленький,
  • Макет большой и т. Д. …

См. Ниже ссылку:

http://developer.android.com/guide/practices/screens_support.html Для разных размеров экрана Ниже приведен список каталогов ресурсов в приложении, которые предоставляют различные схемы компоновки для разных размеров экрана и различных рисунков растровых изображений для небольших, средних , Высокие и сверхвысокие экраны. Вы можете использовать разный размер файлов макета в папке res и также варьироваться для рисования изображений на основе плотности.

  res/layout/my_layout.xml // layout for normal screen size ("default") res/layout-small/my_layout.xml // layout for small screen size res/layout-large/my_layout.xml // layout for large screen size res/layout-xlarge/my_layout.xml // layout for extra large screen size res/layout-xlarge-land/my_layout.xml // layout for extra large in landscape orientation 

Введите описание изображения здесь Res / drawable-mdpi / my_icon.png // растровое изображение для средней плотности res / drawable-hdpi / my_icon.png // растровое изображение для высокой плотности res / drawable-xhdpi / my_icon.png // растровое изображение для сверхвысокой плотности

 <compatible-screens> <screen android:screenDensity="ldpi" android:screenSize="small" /> <screen android:screenDensity="mdpi" android:screenSize="normal" /> <screen android:screenDensity="xhdpi" android:screenSize="large" /> <screen android:screenDensity="xhdpi" android:screenSize="xlarge" /> </compatible-screens> 

И после этого любая деятельность использует эти строки ..

андроид: configChanges = "ориентация | Размер экрана | keyboardHidden"

В значении папок именования, как layout-small работает только для устройств с api version less than 3.1 . Вы должны создать файл значений с наименованием layout-sw600dp для уровня api, превышающего 3.1. Прочитайте это http://developer.android.com/guide/practices/screens_support.html3.1api

Введите описание изображения здесь Например, вы должны создать layout-sw600dp, layout-sw720dp для каждого типа устройств. Layout-sw600dp означает, что этот макет работает для устройств с наименьшей шириной 600dp. Если у вас есть папки layout-600dp и layout-sw720dp. Первая папка макета работает для устройств с наименьшей шириной 600dp (7-дюймовый планшет) до 720dp, а вторая работает для устройств с наименьшей шириной выше 720dp (10-дюймовый планшет).

Если ваша минимальная требуемая версия выше 3,1, вам не нужны макеты макета, макеты xlarge. В противном случае вы должны рассмотреть оба типа макетов.

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

Используйте wrap_content, fill_parent, или dp при указании размеров в файле макета XML. Не используйте жестко закодированные значения pixel в коде приложения ( .java файлы). Не используйте AbsoluteLayout (он устарел в Android 1.5 ). Вместо этого вы должны использовать RelativeLayout , который использует относительное позиционирование для выкладки своих дочерних представлений. Поставляйте альтернативные рисунки растровых изображений для различных плотностей экрана.

Потратьте время и прочитайте эти screens_support или, чтобы получить лучшую идею, см. Раздел « Как Android называет наилучший ресурс, чтобы вы знали, где разместить свои ресурсы».