阻止 imageview 在某些设备上拉伸

Stop imageview from stretching on certain devices

我有一个 activity xml 看起来像这样:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"
    android:orientation="vertical"
    android:baselineAligned="false">

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:scaleType="centerCrop"
        android:background="@drawable/top"
        />

    <ScrollView
                ....

这基本上是在线性布局的顶部显示一个横幅,下面是一个滚动视图。我遇到的问题是图像在某些设备上被拉伸了。源图宽度为1080px(在drawable和drawable-xxhdpi文件夹中),drawable-xhdpi中为720px,drawable-hdpi中为540px,drawable-mdpi中为480。

我是不是忘记了什么或者给了他们错误的宽度?顺便说一句,图像被垂直拉伸了。

感谢您的帮助!

您的图片尺寸有误。图片大小为 480dp 的正确比例是

  • mdpi 480px (x1)
  • hdpi 720px (x1.5)
  • xhdpi 960px (x2)
  • xxhdpi 1440px (x3)

此外,drawable 文件夹中的图片也无需,Android 会从列表中选择最好的一张。 有关详细信息,请参阅 this 文档