【问题标题】:Round shaped image is elongated horizontally or vertically圆形图像水平或垂直拉长
【发布时间】:2014-07-12 03:41:51
【问题描述】:

我必须显示具有圆形物体(球)的飞溅图像。 splash 布局是一个简单的线性布局,只有一个 Image view 占据整个屏幕。

图片:单张图片,尺寸为 1280 x 720。

当我的启动画面显示在应用程序中时,圆形物体在不同的屏幕尺寸下以不同的形状显示。我希望纵横比和分辨率是这些拉长图像的原因。

您能否提出解决此问题的想法/方法? 我需要考虑纵横比或分辨率还是两者兼而有之?

最后,球在所有设备中都应该看起来像一个球:)

提前致谢。

【问题讨论】:

    标签: android android-layout android-imageview android-inflate android-bitmap


    【解决方案1】:

    1) 是的,默认情况下,Android 会缩小您的图像以适应 ImageView,同时保持纵横比。但是,请确保您使用android:src="..." 而不是android:background="..." 将图像设置为ImageView。 src= 使其缩放图像保持纵横比,但background= 使其缩放扭曲图像以使其完全适合 ImageView 的大小。 (不过,您可以同时使用背景和源,这对于仅使用一个 ImageView 在主图像周围显示框架等非常有用。)

    2)您还应该看到android:adjustViewBounds 以使 ImageView 自行调整大小以适应重新缩放的图像。例如,如果您在通常是方形 ImageView 的地方有一个矩形图像,则 adjustViewBounds=true 将使它也将 ImageView 的大小调整为矩形。这会影响其他视图在 ImageView 周围的布局方式。

    您可以使用android:scaleType 参数更改默认缩放图像的方式。顺便说一句,发现它是如何工作的最简单的方法就是自己尝试一下!请记住查看模拟器本身(或实际手机)中的布局,因为 Eclipse 中的预览通常是错误的。

    参考:How to scale an Image in ImageView to keep the aspect ratio

    【讨论】:

      【解决方案2】:

      设置 imageView 属性

      scaleType="centerInside"

      【讨论】:

        【解决方案3】:

        在文件夹 'res->drawable'、'res->drawable-ldpi'、'res->drawable-hdpi' 和 xhdpi "http://developer.android.com/guide/practices/screens_support.html#DesigningResources" 下添加具有相同文件名的图像的缩放版本

        【讨论】: