2

このレイアウトを定義しました:

<?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 のプレビュー ウィンドウによると、次のように表示されます。 デザイナー プレビュー

Nexus5X ではこのように見えますが、Nexus5 では取得します ここに画像の説明を入力

Nexus5X と Nexus5 は同じ密度で、同じ xxhdpi ディレクトリから画像を取得すると思いましたか? それで、何が欠けていますか?

前もって感謝します。

4

1 に答える 1

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代わりに使用することを検討してください。

于 2016-07-25T07:42:58.770 に答える