Android 图像资源,需要 10 张图像来满足每个屏幕分辨率和方向

Posted

技术标签:

【中文标题】Android 图像资源,需要 10 张图像来满足每个屏幕分辨率和方向【英文标题】:Android image resource and need for 10 images to cater for each screen resolution and orientation 【发布时间】:2014-06-21 04:58:38 【问题描述】:

我是一名开发 android 应用程序的初学者,该应用程序需要在纵向和横向模式下以屏幕的整个宽度显示剪贴画类型的 png 图像:

肖像:

风景:

我是否正确地说,为了满足每个屏幕分辨率和方向,我需要包含以下图像尺寸?:

图片宽度:资源文件夹: xxhdpi – 1920 像素可绘制土地 xxhdpi xhdpi – 1280 像素可绘制土地 xhdpi xxhdpi - 1080 像素可绘制-xxhdpi hdpi – 960 px 可绘制土地 hdpi xhdpi – 720 像素可绘制-xhdpi mdpi – 640 像素可绘制土地 mdpi hdpi – 540 像素可绘制-hdpi ldpi - 480 像素可绘制土地 ldpi mdpi – 360 像素可绘制 mdpi ldpi - 270 像素可绘制 ldpi

这似乎有点过头了。该应用程序可能有 1000 张这样的图像,每个图像有 10 个版本。

在这种情况下,通常的方法是什么? 你会缩放图像以适应吗?

【问题讨论】:

【参考方案1】:

假设无论屏幕是纵向还是横向,您都将保持相同的纵横比,并且您将通过 ImageView 显示图像,那么您只需要每个图像的 4 个版本 - xxhdpi、xhdpi、hdpi 和mdpi。

就图像宽度而言,坚持使用推荐的 2:3:4:6:8 缩放比例here, in the Android Documentation。该链接专门讨论图标,但缩放比例适用于所有图像。因此,如果您在 mdpi 上使用横向宽度为 640 像素的图像,则 hdpi、xhdpi 和 xxhdpi 的宽度应分别为 960 像素、1280 像素、1920 像素和 2650 像素。不用担心 ldpi 版本,因为 Android 会针对低分辨率设备缩小 hdpi 版本。

最后,将 ImageView 的缩放类型设置为保持图像纵横比的缩放类型(CENTER_CROP 或 CENTER_INSIDE)。有关设置比例的信息,请参阅 ImageView 文档。然后,一旦您将图像设置为填满屏幕的宽度,图像应该会按照您的意愿显示。

【讨论】:

以上是关于Android 图像资源,需要 10 张图像来满足每个屏幕分辨率和方向的主要内容,如果未能解决你的问题,请参考以下文章

使用 Libgdx 从图像中裁剪图像

内存优化加载一张图像资源到底占据多少内存

从imageview Android中删除图像[重复]

如何将资源文件夹中的图像加载到android listview中

如何在android中获取图像资源的uri

Android:将图像剪辑到形状