2

如果我在除 xxhdpi 文件夹之外的所有文件夹中都有资源,那么 xxhdpi 设备是否会默认从其他文件夹之一获取资源?换句话说,我必须为 xxhdpi 文件夹制作资源吗?我有这张图表,但我不确定 xxhdpi 我正试图开悟一点

xlarge screens are at least 960dp x 720dp
large screens are at least 640dp x 480dp
normal screens are at least 470dp x 320dp
small screens are at least 426dp x 320dp
Generalised Dpi values for screens:

ldpi Resources for low-density (ldpi) screens (~120dpi)
mdpi Resources for medium-density (mdpi) screens (~160dpi). (This is the baseline      density.)
hdpi Resources for high-density (hdpi) screens (~240dpi).
xhdpi Resources for extra high-density (xhdpi) screens (~320dpi).
Therefore generalised size of your resources (assuming they are full screen):

ldpi
Vertical = 426 * 120 / 160 = 319.5px
Horizontal = 320 * 120 / 160 = 240px
mdpi
Vertical = 470 * 160 / 160 = 470px
Horizontal = 320 * 160 / 160 = 320px
hdpi
Vertical = 640 * 240 / 160 = 960px
Horizontal = 480 * 240 / 160 = 720px
xhdpi
Vertical = 960 * 320 / 160 = 1920px
Horizontal = 720 * 320 / 160 = 1440px

px = dp*dpi/160
4

1 回答 1

6

如果您没有任何 xxhdpi 资源,它将尝试从可能的“最佳”来源获取资源。

来自谷歌开发者网站

  • 系统使用适当的替代资源

根据当前屏幕的大小和密度,系统使用应用程序中提供的任何特定于大小和密度的资源。例如,如果设备具有高密度屏幕并且应用程序请求可绘制资源,则系统会查找与设备配置最匹配的可绘制资源目录。根据可用的其他替代资源,具有 hdpi 限定符的资源目录(例如 drawable-hdpi/)可能是最佳匹配,因此系统使用该目录中的可绘制资源。

  • 如果没有可用的匹配资源,则系统使用默认资源并根据需要将其放大或缩小以匹配当前屏幕尺寸和密度

“默认”资源是那些没有用配置限定符标记的资源。例如drawable/中的资源就是默认的drawable资源。系统假定默认资源是为基线屏幕尺寸和密度设计的,即正常屏幕尺寸和中等密度。因此,系统会酌情为高密度屏幕向上缩放默认密度资源,为低密度屏幕向下缩放。

于 2013-06-07T06:22:15.097 回答