Android资源-应该将哪些分辨率放入hdpi、ldpi、mdpi和xhdpi目录中

4
我正在尝试编写一个能够适配所有屏幕尺寸的应用程序,为此我让我的平面设计师为每个目录(低密度(120)ldpi、中等密度(160)mdpi、高密度(240)hdpi和超高密度(320)xhdpi)制作所需dpis的图片。但是,他们想知道每张图片应该具有哪种分辨率和纵横比。在查看Android文档后,即: 1)http://developer.android.com/guide/topics/resources/providing-resources.html#AlternativeResources 2)http://developer.android.com/guide/practices/screens_support.html 我得出以下信息: Android并不仅支持3种屏幕尺寸,它是一种可以在任何屏幕尺寸上运行的操作系统,但是有些屏幕尺寸比其他屏幕尺寸更常见,这些在下表中展示(摘自http://developer.android.com/guide/practices/screens_support.html)。
表1.包含在Android SDK中的模拟器皮肤的屏幕尺寸和密度。 低密度(120),ldpi 中等密度(160),mdpi 高密度(240),hdpi 超高密度(320),xhdpi 小屏幕 QVGA(240x320)
普通屏幕 WQVGA400(240x400) WQVGA432(240x432) HVGA(320x480) WVGA800(480x800) WVGA854(480x854)
大屏幕 WVGA800*(480x800) WVGA854*(480x854)
超大屏幕
值得注意的是,即使这些屏幕尺寸之间似乎没有关联,三种密度之间存在3:4:6的缩放比例,因此,在ldpi中,9x9位图在mdpi中为12x12,在hdpi中为18x18(请参见http://developer.android.com/guide/topics/resources/providing-resources.html#AlternativeResources)。
我们可以在这里了解更多有关屏幕尺寸的信息:
屏幕尺寸 • 小:基于低密度QVGA屏幕上可用空间的屏幕。考虑到纵向HVGA显示器,它具有相同的可用宽度但较小的高度——它是3:4,而HVGA的宽高比为2:3。例如,QVGA低密度和VGA高密度。 • 正常:基于传统中密度HVGA屏幕的屏幕。如果屏幕至少达到此大小(与密度无关),且不超过此大小,则被认为是正常的。此类屏幕的示例包括WQVGA低密度、HVGA中密度、WVGA高密度等。 • 大:基于中密度VGA屏幕上可用空间的屏幕。这种屏幕在宽度和高度方面都比HVGA显示器具有更多可用空间。例如,VGA和WVGA中密度屏幕。 • 特大:比传统中密度HVGA屏幕大得多的屏幕。在大多数情况下,具有特大屏幕的设备太大了,无法放在口袋里,并且很可能是平板式设备。自API Level 9添加。
我们还可以支持特定的宽高比,如下所定义: 屏幕宽高比 • 长:长屏幕,例如WQVGA、WVGA、FWVGA • 非长:非长屏幕,例如QVGA、HVGA和VGA
然而,所有这些仍然不足以回答简单的问题:这些图像的分辨率应该是多少?它们是否可以从同一高分辨率图像中裁剪出来,还是应该针对每个dpi重新制作,因为其宽高比不同? 请帮忙解决,这拖延了我的项目。 谢谢!
2个回答

6
这取决于你的图片。对于非常小的图形,你可能需要单独绘制它们,因为在缩小到较小尺寸时会失去细节,而对于较大的图形,你可能只需重新调整大小,从高分辨率图像开始即可。
对于背景图像,这总是一个棘手的问题。由于无法确定特定的分辨率,您可以估计并选择略小于平均值的一个,并将其转换为9-patch,其中边缘将拉伸以覆盖剩余空间;或者您可以选择略大于平均值(例如900 x 500)的图像,并确保边缘区域不包含任何重要信息。基本上,将其视为印刷品的出血,它只是额外的区域,如果屏幕不够大,可能会被裁剪掉。如果可能的话,最好使用某种渐变可绘制对象或其他分辨率无关类型的图像作为背景,因为需要支持大量不同的分辨率。

不过,需要哪些分辨率呢?比如说,对于每个dpi类别的背景图像,我应该使用哪种分辨率和纵横比呢? - ekatz

2
当我创建图形时,我会考虑以下方式: ldpi 240x320 mdpi 320x480 hdpi 480x800 xhdpi 800x1280
将图像放在单独的drawable文件夹中,如drawable-hdpi、drawable-mdpi等。
背景有点棘手,您可以使用bg或甚至从程序而不是布局xml文件中设置它。这将为您提供更多的灵活性,选择是否调整大小或裁剪它。

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