как спроектировать для всех разрешений устройств

#android

#Android

Вопрос:

привет всем, я должен использовать линейную компоновку со всеми устройствами типа разрешения, такими как 480×800, 480×854, 320×480. я использую положение x, y для размещения элемента в линейной компоновке при проектировании для 320×480. я должен переделать дизайн для другого устройства с другим разрешением, поэтому это занимает больше времени. пожалуйста, укажите общий метод для всех разрешений с линейной компоновкой. заранее спасибо.

Ответ №1:

НЕ разрабатывайте для определенного разрешения. Используйте комбинации layout_weight атрибутов, layout_width и layout_height значений wrap_content и match_parent , чтобы получить различную пропорциональную ширину в зависимости от размера экрана, а не жестко заданные значения пикселей.

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

 <LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="5dp"
    android:gravity="top"
    android:orientation="horizontal"
    >
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"       
        android:text="Button 1"
        />
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"       
        android:text="Button 2"
        />
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"       
        android:text="Button 3"
        />
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"       
        android:text="Button 4"
        />
</LinearLayout>
  

Это даст вам надежный результат для любой плотности экрана, и вам никогда не придется беспокоиться об определенном значении пикселя. Использование dp (независимого от устройства пикселя) для заполнения также немного меняется в зависимости от плотности, так что его физический размер остается неизменным независимо от разрешения.

Ознакомьтесь с примерами линейных, фреймовых и относительных описаний на сайте для разработчиков Android. Вы получите хорошее представление о том, для чего подходит каждый из них, а также об их преимуществах и недостатках.

Ответ №2:

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

http://developer.android.com/guide/practices/screens_support.html

Ответ №3:

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

Ответ №4:

Очень ОТЛИЧНЫЕ ОТВЕТЫ… Я полагаю, что многие частные лица и компании одинаково думают, что Android — это «Устройство», и не совсем понимают, что Android — это «ОС». Для правильного отображения изображений на всех устройствах под управлением ОС Android необходимо выбрать опцию поддержки нескольких устройств и разработки в соответствии с ОС Android, а не с определенным устройством под управлением ОС Android. Я сталкивался с этой проблемой раньше, мой начальник (в то время) сказал: «Изображения какого размера нужны вашему тестовому устройству? Я сказал: «Просто достань мне изображения! Я был вынужден использовать изображения 320×480 (в соответствии с тестовым устройством), и когда региональный менеджер увидел демонстрационный продукт на своем ThinkPad (и 4 других устройствах) Я был уволен со своей должности, потому что мой руководитель думал, что Android — это устройство, а не ОС … и корпоративное приложение для Android еще не завершено.Мое мнение таково: «Поддержка нескольких устройств разрабатывается для общей ОС Android, в то время как разработка в соответствии с «Разрешением» предназначена для определенного устройства или типа устройства.

Комментарии:

1. спасибо, у меня такая же проблема, и она решена с поддержкой для некоторых устройств. Вы получили должность (job)?

2. Я получил должность, оказавшись в нужном месте и выступив в нужное время. Но в конечном итоге при разработке вы должны либо знать, что делать, куда идти, либо кого спрашивать… Нравится эта отличная сеть людей здесь, в Stackoverflow .