2014-10-29 7 views
0

Как оптимизировать приложение для поддержки нескольких размеров экрана? Я работаю над проектом, где большая часть графики - это XML-чертежи без определенного размера. Я пробовал с размерами папок значений (ldpi, mpdi, etcetc), но это действительно не работало. Я застрял с некоторыми элементами, выходящими из экрана, поэтому я попытался создать разные макеты для каждого размера экрана, но это же самое, приложение выглядит неплохо на устройствах 4.3 ... 5 ", но когда я запускаю эмулятор 3.7, приложение выглядит плохо и некоторые предметы находятся вне экрана/покрыты другими элементами. Я использую относительный макет, я не вижу необходимости в коде, но при необходимости я отправлю. Мой вопрос: Каков наилучший способ оптимизации приложения для поддержки нескольких размеров экрана?Поддержка нескольких экранов Android

ответ

1

Я думаю, что ваша точка должна быть смотреть через эту страницу с помощью Google: https://developer.android.com/guide/practices/screens_support.html

Но и здесь некоторые указатели:

  • широко используют «wrap_content» и «match_parent» высота и свойства макета ширины. Избегайте, устанавливая явные размеры, где это возможно.
  • Если вам нужно установить явные размеры, рассмотрите возможность использования dimen.xml для разных экранов или подумайте о настройке значений программно
  • Убедитесь, что у вас есть разные изображения res в ваших чертежах, Не забывайте о папке drawables-nodpi
-1

Вы должны создать 4 папки для каждого размера экрана (маленький, обычный, большой и X-большой). Щелкните правой кнопкой мыши по папке res в своем редакторе и выберите «Создать» -> AndroidResourceDirectory, выберите размер из «Доступный классификатор» и создайте все типы папок. Удача

+0

Этот метод был в основном устаревшим, поскольку он не коррелировал с размерами экрана и новыми плотностями. Телефон 2014 будет x-large, как и планшет 2011 года. –

0

Лучший способ, который я нашел, - быть предельно продуманным при определении ваших макетов в XML. В большинстве ситуаций вы обнаружите, что вы можете определить свои макеты, чтобы они масштабировались должным образом между устройствами, пока вы не достигнете действительно высокого уровня.

Возьмите этот макет, например:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/MainLinView1" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:orientation="vertical" > 

<LinearLayout 
    android:id="@+id/KeywordItemViewMain" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentTop="true" 
    android:layout_marginLeft="@dimen/defViewMargin" 
    android:layout_marginRight="@dimen/defViewMargin" 
    android:layout_marginTop="@dimen/defViewMarginTopBottom" 
    android:layout_marginBottom="@dimen/defViewMarginTopBottom" 
    android:background="@drawable/rounded_corners_background" 
    android:gravity="center" 
    android:orientation="horizontal" 
    android:padding="@dimen/defViewPadding" > 

    <TextView 
     android:id="@+id/rowKeywordTitle" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" 
     android:layout_weight="1" 
     android:gravity="center" 
     android:padding="5dp" 
     android:text="@string/keywordrow_name" 
     android:textSize="15sp" 
     android:textStyle="bold" /> 

</LinearLayout> 

<LinearLayout 
    android:id="@+id/icons" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignRight="@+id/KeywordItemViewMain" 
    android:layout_centerVertical="true" > 

    <ImageView 
     android:id="@+id/acknowledgedIcon" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:contentDescription="@string/handled" 
     android:padding="5dp" 
     android:src="@drawable/acknowledge_item_icon" /> 
</LinearLayout> 

Заливка Родитель & Wrap Content будет вашими лучшими друзьями.

Я только когда-либо использую папки маленькие, нормальные, большие и X-большие, когда мне действительно нужно указывать по-разному разработанные макеты между телефонами или с действительно высоким/низким размером экрана в случае необходимости, поскольку мне нахожу, что это раздражает, чтобы сделать 4/5 редактирует каждый раз, когда я хочу внести незначительные изменения в макет.

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

  • Нет связанных вопросов^_^