Nexus5和Nexus5X之间的差异?

时间:2016-07-25 07:28:13

标签: android pixel-density

我定义了这个布局:

<?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 studio预览窗口,它应该看起来像这个: designer preview

在Nexus5X上,它看起来就像这样,但是在Nexus5上我得到了 enter image description here

我认为Nexus5X和Nexus5具有相同的密度并取the images from the same xxhdpi directory?那么缺少什么?

提前致谢。

1 个答案:

答案 0 :(得分:0)

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