安卓xxxhdpi可缩放的drawable分辨率自动调整

5

如果我将一张大图添加到xxxhdpi文件夹中,Android会自动将其调整大小以适应其他屏幕分辨率吗?

如果是,从哪个版本的Android开始支持此功能?


1
我会阅读http://developer.android.com/guide/practices/screens_support.html,简而言之,如果只找到一个Bitmap实例,它将进行缩放,但它首先会搜索位图的正确表示(在相应的文件夹中)。我很确定xxxhdpi是由于Nexus 5问题而引入的,但无论如何,这是一个巨大的分辨率要使用,除非你有真正的理由,否则我会将其备份到xhdpi。 - zgc7009
如果您只在该文件夹中提供一个,则它会进行一些自动转换。Android Asset Studio可以为某些图标提供一些转换和其他一些功能。 - Jay Snayder
3个回答

4

你其实不需要xxxhdpi。它只是因为Nexus 5的启动器图标缩放方式而被引入。

所以把你的图片放到xxhdpi中,它将自动适应其他设备。唯一的问题是质量。如果你自己进行缩放,可以获得更高质量的图像。


1
问题在于保存6个不同分辨率的图像非常耗时,特别是如果您需要以不同尺寸和6倍的时间保存20-30张图片。 - Mario
1
在文档中,您可以看到这样的解释:注意:只有当需要提供一个可能在xxhdpi设备上显示比正常尺寸更大的启动器图标时,才需要使用mipmap-xxxhdpi限定符。您不需要为应用程序中的所有图像提供xxxhdpi资源。 - David Hackro

2
补充我的评论,这是来自Android Developers - Supporting Multiple Screens的内容。
提供不同分辨率的位图可绘制对象 默认情况下,Android会根据每个设备的物理尺寸缩放您的位图可绘制对象(.png、.jpg和.gif文件)和Nine-Patch可绘制对象(.9.png文件),以便在每个设备上呈现适当的物理大小。例如,如果您的应用程序仅为基线中等密度(mdpi)屏幕提供位图可绘制对象,则系统在高密度屏幕上将它们缩放,而在低密度屏幕上将它们缩小。此缩放可能导致位图出现伪影。为确保您的位图显示效果最佳,您应该为不同分辨率提供替代版本,以适应不同的屏幕密度。
并且从Roman Nurik post中得知
我谈到了所有Android设计师都应该了解的Android 4.4 KitKat的一些关键方面。具体来说:...
7)由于Nexus 5启动器的图标缩放行为,引入了新的XXXHDPI(640dpi)启动器图标资产。
因此,它似乎会进行缩放,并且分辨率xxxhdpi是一种较新的实现。我真的不建议在应用程序中使用xxxhdpi图像,除非您有特定的原因要使用它们,因为它们将是大文件。
编辑 似乎xxxhdpi是在4.3中引入的,如这篇Android Police文章所述。无论如何,它还没有存在很长时间,目前没有被许多设备使用,因此我仍然认为,除非您有明确的原因要使用xxxhdpi图像,否则不值得使用它可能遇到的空间和缩放问题。

2
一张单独的大图与同一图像的6个不同分辨率相比并不算太大。更不用说保存每个不同分辨率的图像需要多少时间(已计算)。 - Mario
@Mario M 只需使用一个 xhdpi,甚至是 mdpi,除非由于某种原因需要高分辨率,否则仍然比 xxxhdpi 小。将单个大的 xxxhdpi 缩放到小尺寸可能会产生不良结果。 - zgc7009

1
它最初出现在4.3源代码中(请参见Android Police),目前分布少于0.1%(请参见屏幕尺寸和密度)。虽然图像会缩小,但您应该包括较低的分辨率(我会选择mdpi、hdpi和xhdpi而不是xxxhdpi),以确保高质量和高性能。

我有一台三星Note 10.1,分辨率为2560x1600,我必须确保我的应用程序在这个设备上看起来也很好。 - Mario

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接