Размеры экрана Android - Проблемы с макетом. Можно просто растянуть, а не определить 4 макета? - PullRequest
0 голосов
/ 04 марта 2012

Я потратил много времени на разработку макетов и размеров экрана.Я прочитал здесь документ Android, который помог и имеет смысл: http://developer.android.com/guide/practices/screens_support.html

Итак, теперь у меня есть приложение, показывающее точно такой же размер на разных размерах экрана, как и все мои элементы во всемиспользуйте DIP (Density независящие пиксели).

Тем не менее, у меня есть два устройства передо мной, одно больше другого, так что это означает, что некоторое пустое пространство внизу экрана большего размера (Sensation XE)чем на немного меньшем размере экрана (Desire Z).

При чтении документа Android общее решение заключается в создании макетов для больших, больших, нормальных и маленьких экранов с разным количеством DIP.

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

Макет, однако, будет в порядке, если он будет растянут.Если бы он взял то, как выглядит, например, Desire Z, и буквально просто растянул все, чтобы уместить его на большом экране, это было бы хорошо, поскольку растяжение здесь не должно быть большой проблемой.

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

Я тестировал на планшетном устройстве, и оно показало хорошо, но все было крошечным и не заполнилосьэкран.У меня есть изображения разных размеров в разных папках (от xhdpi до ldpi), поэтому выбор правильного изображения не должен быть проблемой.

Спасибо, любая помощь очень ценится.

Ответы [ 2 ]

0 голосов
/ 07 октября 2016

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

для получения полного списка атрибутов нажмите здесь

0 голосов
/ 05 марта 2012

Да, в общем случае вы можете растянуть вещи под свой макет, используя fill_parent для android: layout_width и / или android: layout_height на некоторых виджетах.Вы также можете пропорционально масштабировать, устанавливая layout_weight соответствующим образом для серии виджетов в LinearLayout.Как это сделать на самом деле зависит только от того, что вы хотите сделать, и очень трудно ответить в резюме.Если у вас есть пример и вопрос о том, как сделать что-то конкретное, вам будет проще ответить.

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

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
    <TextView 
        android:id="@+id/first"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="#ff880000"
        android:text="Some text" />
    <TextView 
        android:id="@+id/second"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@id/first"
        android:layout_toRightOf="@id/first"
        android:background="#ff008800"
        android:text = "More text" />
    <TextView 
        android:id="@+id/third"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/first"
        android:background="#ff000088"
        android:text="Even more text" />
    <TextView 
        android:id="@+id/fourth"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_below="@id/third"
        android:background="#ff008888"
        android:text="The last text" />
    </RelativeLayout>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...