Погружение в xml не работает для разной плотности экрана в симуляторе Android

Я тестирую несколько точек на дюйм в Android, и XML-файл макета выглядит следующим образом:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="fill_parent"
    android:layout_height="fill_parent" android:background="@drawable/new_album_bg">
    <TextView android:layout_width="fill_parent"
        android:layout_height="wrap_content" android:text="@string/hello" />
    <RelativeLayout android:gravity="center"
        android:paddingTop="400dip" android:layout_width="fill_parent"
        android:layout_height="wrap_content">
        <EditText android:background="@drawable/name_text_bg"
            android:layout_width="wrap_content" android:layout_height="wrap_content"
            android:gravity="center" />
    </RelativeLayout>
</RelativeLayout>

Когда я запускаю его на симуляторе 480x800 mdpi (160) (масштаб до 7 дюймов), он работает нормально, но на симуляторе hdpi 480x800 он ЗАПОЛНЯЕТ EditText до нижней части экрана, почти 600 пикселей, это 400dip x 240/160? И, кажется, нет никакой разницы с размером экрана, даже если я увеличил его до 4 дюймов. Как заставить отступы работать при разной плотности экрана? Большое спасибо!


person herbertD    schedule 30.03.2011    source источник


Ответы (1)


How to let padding work under different screen density? 

вы можете создавать разные макеты xml с разными отступами в разных папках, например

res/layout-mdpi 
res/layout-hdpi

Затем андроид выберет соответствующий макет xml
О dp(Dip)
dp гарантирует, что представлению будет присвоен соответствующий размер на текущем экране устройства. Например, представление с layout_width="100dp" будет иметь ширину 100 pixels на дисплее HVGA@160 density и 150 pixels на дисплее WVGA@240 density, но представление будет занимать примерно такое же физическое пространство.

Дополнительные сведения см. в разделе Поддержка нескольких экранов.

person Labeeb Panampullan    schedule 30.03.2011
comment
привет Labeeb P, используйте res/layout-hdpi в порядке! Благодарность! Но есть еще малюсенький вопросик: dp был усилен в 1.5, чтобы экран 480х800 240dip как раз выступал как 480x800/1.5, то есть высота экрана всего 533.33 dp что бы я мог использовать в верстке xml, пользоваться не удобно . Какие-либо предложения? - person herbertD; 30.03.2011