Дп различия между Nexus5 и Nexus5X?
Я определил этот макет:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/ivSmartphone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:src="@drawable/intro_smartphone_data" />
<ImageView
android:id="@+id/ivData1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@id/ivSmartphone"
android:layout_centerHorizontal="true"
android:layout_marginTop="90dp"
android:src="@drawable/intro_data_1" />
<ImageView
android:id="@+id/ivData2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/ivData1"
android:layout_centerHorizontal="true"
android:layout_marginTop="10dp"
android:src="@drawable/intro_data_2" />
<ImageView
android:id="@+id/ivData3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/ivData2"
android:layout_centerHorizontal="true"
android:layout_marginTop="10dp"
android:src="@drawable/intro_data_3" />
<ImageView
android:id="@+id/ivData4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/ivData3"
android:layout_centerHorizontal="true"
android:layout_marginTop="10dp"
android:src="@drawable/intro_data_4" />
</RelativeLayout>
Это должно выглядеть так в соответствии с окном предварительного просмотра студии Android:
На Nexus5X это выглядит точно так же, но на Nexus5 я получаю
Я думал, что Nexus5X и Nexus5 имеют одинаковую плотность и берут изображения из одного каталога xxhdpi? Так чего не хватает?
Заранее спасибо.
1 ответ
Размер Nexus 5 составляет 360x640dp, в то время как у Nexus 5X 411x731dp при той же плотности.
Поэтому, когда вы определите свой макет, как это
<ImageView
android:id="@+id/ivSmartphone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:src="@drawable/intro_smartphone_data" />
Вы используете одно и то же изображение для каждой ширины экрана без масштабирования. Вместо этого вам нужно убедиться, что ваши изображения соответствуют ширине экрана.
<ImageView
android:id="@+id/ivSmartphone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="4dp"
android:layout_marginRight="4dp"
android:scaleType="fitCentered"
android:src="@drawable/intro_smartphone_data" />
fitCentered
может также улучшить изображение. Если у вас все в порядке с большим интервалом, подумайте об использовании centerInside
вместо.