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

标签 android graphics resolution dpi

我正在尝试编写一个适用于所有屏幕尺寸的应用程序,因为我让我的图形设计师为每个目录生成符合请求 dpis 的图像(低密度 (120)、ldpi、中等密度 ( 160), mdpi, High density (240), hdpi, Extra high density (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 是一个几乎可以在任何屏幕尺寸上运行的操作系统,但有一些屏幕尺寸比其他屏幕尺寸更常见,这些在下表中进行了说明(摘自 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,在 mdpi 中为 18x18 hdpi(参见 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 中密度屏幕。 • xlarge:比传统的中等密度 HVGA 屏幕大得多的屏幕。在大多数情况下,具有超大屏幕的设备太大而无法放在口袋里,而且很可能是平板式设备。在 API 级别 9 中添加。

我们还可以支持特定的纵横比,定义如下:

屏幕方面 • long:长屏幕,例如WQVGA、WVGA、FWVGA • notlong:非长屏,如QVGA、HVGA、VGA

-- 然而,所有这些都不足以回答这些图像的分辨率应该是多少这样一个简单的问题——它们是否可以从同一张高分辨率图像中剪切出来,还是应该为每个 dpi 重新制作,因为纵横比不同? 请帮忙,这阻碍了我的项目 谢谢!

最佳答案

这真的取决于您的图像。您可能希望单独绘制非常小的图形,因为在插值到较小的尺寸时会丢失精细的细节,而对于较大的图形,您可能只需重新缩放就可以了,从高分辨率图像开始。

对于背景图片,这总是有点棘手。由于您不能指望特定的分辨率,您可以估计并使用比平均值略小的分辨率,并将其变成 9 补丁,边缘将拉伸(stretch)以覆盖剩余空间,或者您可以使用一个比平均值稍大(大约 900 x 500)并且确保边缘区域不包含任何相关信息。基本上,把它想象成打印用的出血,它只是额外的区域,如果屏幕不够大,可能会被切掉。由于支持大量不同的分辨率,如果可能的话,只使用某种渐变可绘制对象或其他与分辨率无关的图像类型作为背景会更容易。

关于Android 资源——哪些分辨率应该进入 hdpi、ldpi、mdpi 和 xhdpi 目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5280155/

相关文章:

java - 如何修复模糊的自定义标记 Android google map api

html - 当其他屏幕分辨率时 Div 改变大小

Python tcl 没有正确安装

需要 Android App Locker 密码

java - RxAndroid -BehaviorSubject 未在 onNext 上发出

android - PercentRelativeLayout - layout_width 缺少警告

c# - 当我在 TextChanged 事件中运行相同的代码而不是在 Button Click 中运行相同的代码时,为什么会得到不同的结果?

algorithm - 线剪裁到任意二维多边形

不同大小和语言的Android图片

Android webview固定背景