#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 .