Android资源 - 哪些分辨率应该进入hdpi,ldpi,mdpi和xhdpi目录

时间:2011-03-12 01:20:01

标签: android graphics resolution dpi

我正在尝试编写一个适用于所有屏幕尺寸的应用程序,因为我让我的图形设计师为每个目录生成所请求的dpis图像(低密度(120),ldpi,中等密度( 160),mdpi,高密度(240),hdpi,超高密度(320),xhdpi)然而,他们想知道每个图像应该是哪个分辨率和宽高比,在浏览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种屏幕尺寸,android是一种可以在任何屏幕尺寸上虚拟运行的操作系统,但有些屏幕尺寸比其他尺寸更常见,这些在下表中展示(取自{{3} })

表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和18x18 in hdpi(见http://developer.android.com/guide/practices/screens_support.html)。

我们可以在这里看到有关屏幕尺寸含义的更多信息:

屏幕尺寸 •small:基于低密度QVGA屏幕上可用空间的屏幕。考虑到纵向HVGA显示器,它具有相同的可用宽度但较少的高度 - 与HVGA的2:3宽高比相比为3:4。例子是QVGA低密度和VGA高密度。 •normal:基于传统中密度HVGA屏幕的屏幕。如果屏幕至少是这个尺寸(与密度无关)并且不大,则认为屏幕是正常的。这种屏幕的例子是WQVGA低密度,HVGA中密度,WVGA高密度。 •large:基于中密度VGA屏幕上可用空间的屏幕。与HVGA显示器相比,这种屏幕在宽度和高度上具有明显更多的可用空间。例子是VGA和WVGA中密度屏幕。 •xlarge:比传统中密度HVGA屏幕大得多的屏幕。在大多数情况下,具有超大屏幕的设备太大而无法放入口袋中,并且很可能是平板式设备。在API级别9中添加。

我们还可以支持特定的宽高比,如下所示:

屏幕方面 •长:长屏幕,如WQVGA,WVGA,FWVGA •notlong:不长的屏幕,如QVGA,HVGA和VGA

- 然而,所有这些都不足以回答关于这些图像的分辨率应该是什么的简单问题 - 它们是否可以从相同的高分辨率图像中切割出来,还是应该针对每个dpi重新进行分割,因为纵横比不同? 请帮助,这是我的项目 谢谢!

2 个答案:

答案 0 :(得分:6)

这取决于你的图像,真的。非常小的图形你可能想要单独绘制,因为当插入到较小的尺寸时你会丢失细节,而对于较大的图形,你可能会很好,只需重新缩放,从高分辨率图像开始。

对于背景图片,这总是很棘手。由于你不能指望一个特定的分辨率,你可以估计并选择略小于平均分辨率的分辨率,并将其转换为9补丁,其中边缘将拉伸以覆盖剩余空间,或者你可以选择一个略大于平均值(类似900 x 500)并确保边缘区域不包含任何相关信息。基本上,把它想象成印刷的流血,如果屏幕不够大,它只是可能被切断的额外区域。如果可能的话,可以更容易地使用某种渐变可绘制或其他分辨率独立类型的图像作为背景,因为需要支持大量不同的分辨率。

答案 1 :(得分:2)

当我创建图形时,我考虑这种方式: ldpi 240x320 mdpi 320x480 hdpi 480x800 xhdpi 800x1280

将图像分成可绘制文件夹,drawable-hdpi,drawable-mdpi ....

背景有点棘手,您可以使用bg或者甚至从程序中设置它而不是布局xml文件。这将为您提供更大的灵活性,选择天气您将调整大小或裁剪它。