Создание мульти- экран Поддержка приложений Android

? Jay Vyas @ | Original: StackOverFlow
---

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

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

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

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

Для дополнительной больших экранах макета XLarge

и у меня есть для создания различных макетов для различных экранов с таким же именем. e.g mylayout.xml

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

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

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

  setContentView(R.layout.mylayout);

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

Но этого не происходит в моей case.It принимает только макет, который определен в папке макета.

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

---

Top 5 ответ

1Arun Antoney @

то Plaese попробовать имя, как это макета sw320dp, верстка, sw480dp, верстка, sw600dp, верстка, sw720dp вместо макета маленький, расположение большой ......

2Exbury @

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

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

Если ваш Минимальная требуемая версия выше 3,1 не обязательно должны быть   макета маленький, папки layoutxLarge . в противном случае, вы должны рассмотреть   Оба типа макета fromats .

3Sethu @

Пожалуйста, обратитесь ссылку ниже :

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

  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

Создание мульти- экран Поддержка приложений Android       RES / холст - MDPI / my_icon.png // растровый средней плотности       RES / холст - hdpi / my_icon.png // растровый высокой плотности       RES / холст - 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>

И затем какой-либо деятельности использовать эти строки ..

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

4Sanjeev C @

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

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

Найдите время и прочитайте эти http://developer.android.com/guide/practices/screens_support.html или получитьлучшее представление см http://developer.android.com/guide/topics/resources/providing-resources.html #BestMatch так что вы знаете, где разместить свои ресурсы .