Android资源适配规则

Android资源适配规则

在res/中创建以<resources_name>-<qualifier>形式命名资源目录,其中<qualifier>的适配优先级如下(优先级高到低):

1、MCC和MNC
示例:mcc310,mcc310-mnc004,mcc208-mnc00 等等

移动设备国家/地区代码 (MCC),(可选)后跟设备 SIM 卡中的移动设备网络代码 (MNC)。例如,mcc310 是指美国的任一运营商,mcc310-mnc004 是指美国的 Verizon 公司,而 mcc208-mnc00 是指法国的 Orange 公司。

如:drawable-mcc310-mnc004 是指美国的 Verizon 公司
2、语言和区域
示例:en,fr,en-rUS,fr-rFR,fr-rCA,b+en,b+en+US,b+es+419,b+zh+Hant,b+sr+Latn+RS

语言通过由两个字母组成的 ISO 639-1语言代码进行定义,可以选择后跟两个字母组成的ISO 3166-1-alpha-2区域码(前缀用小写字母r)。这些代码不区分大小写;r 前缀用于区分区域码。

Android 7.0(API 级别 24)引入对BCP 47语言标记的支持,如要使用BCP 47语言标记,请将b+和两个字母的ISO 639-1语言代码串联;其后还可选择使用其他子标记,用 + 分隔即可。

如:values-en,values-zh
3、布局方向
示例:ldrtl,ldltr

应用的布局方向。ldrtl 是指“布局方向从右到左”。ldltr 是指“布局方向从左到右”(默认的隐式值)。

例如,如要针对阿拉伯语提供某种特定布局,并针对任何其他“从右到左”的语言(例如波斯语或希伯来语)提供某种通用布局,则可提供以下资源:

res/
	layout/
		main.xml(默认布局)
	layout-ar/
		main.xml(特定于阿拉伯语的布局)
	layout-ldrtl/
		main.xml(任何“从右到左”语言,阿拉伯语除外,因为“ar”语言限定符具有更高的优先级。)
4、smallestWidth
示例:sw320dp,sw600dp,sw720dp等等,此项为API级别13中的新增配置

应用窗口的smallestWidth是窗口可用高度和宽度的最小尺寸,可使用此限定符来确保应用界面的可用宽度至少为Ndp(其中N的计算规则为屏幕宽或者高/屏幕密度)

如:values-sw480dp,layout-sw720dp
5、可用宽度和高度
示例:w720dp,w1024dp,h720dp,h1024dp等等,此项为API级别13中的新增配置

w<N>dph<N>dp指定资源应使用的最小可用屏幕宽度或高度(以dp为单位,由<N>值定义)。当设备屏幕方向在横屏和竖屏之间切换时、设备折叠或展开时或者系统进入或退出多窗口模式时,系统会将这些配置值与当前的显示宽度和高度进行比较。在多窗口模式下,这些值反映的是包含应用的窗口的宽度和高度,而不是设备屏幕的宽度和高度。同样,对于嵌入的activity,该值与各个activity的宽度和高度(而非屏幕的宽度和高度)相关。

如:layout-w720dp,layout-h480dp
6、屏幕尺寸
small,normal,large,xlarge

small:尺寸类似于低密度QVGA屏幕的屏幕。小屏幕的最小布局尺寸约为320x426dp。例如,QVGA 低密度屏幕和 VGA 高密度屏幕。

normal:尺寸类似于中等密度HVGA屏幕的屏幕。标准屏幕的最小布局尺寸约为320x470dp。例如,WQVGA 低密度屏幕、HVGA 中等密度屏幕、WVGA 高密度屏幕。

large:尺寸类似于中等密度VGA屏幕的屏幕。大屏幕的最小布局尺寸约为480x640dp。例如,VGA 和 WVGA 中等密度屏幕。

xlarge:明显大于传统中等密度HVGA屏幕的屏幕。超大屏幕的最小布局尺寸约为720x960dp。在大多数情况下,屏幕超大的设备体积太大,不能放进口袋,最常见的是平板式设备。

如:layout-large,layout-xlarge
7、屏幕宽高比
long,notlong,此项为API级别23中的新增配置。

long:宽屏,如,WQVGA、WVGA、FWVGA

notlong:非宽屏,如,QVGA、HVGA和VGA

8、圆形屏幕
round,notround

round:圆形屏幕,例如圆形可穿戴式设备

notround:方形屏幕,例如手机或平板电脑

9、广色域
widecg,nowidecg,此项为 API 级别26中的新增配置

widecg:显示广色域,如 Display P3 或 AdobeRGB

nowidecg:显示窄色域,如 sRGB

10、高动态范围 (HDR)
highdr,lowdr,此项为 API 级别 26 中的新增配置

highdr:显示高动态范围

lowdr:显示低/标准动态范围

11、屏幕方向
port,land

port:设备处于竖屏模式(纵向)

land:设备处于横屏模式(水平)

12、界面模式
car,desk,television,appliance,watch,vrheadset

car:设备正在车载基座中显示

desk:设备正在桌面基座中显示

television:设备正在通过电视显示内容,通过将界面投影到离用户较远的大屏幕上,为用户提供“十英尺”体验。主要面向遥控交互或其他非触控式交互

appliance:设备用作不带显示屏的装置

watch:设备配有显示屏,并且可戴在手腕上

vrheadset:设备正在通过虚拟现实耳机显示内容

13、夜间模式
night,notnight

night:夜间

notnight:白天

14、屏幕像素密度 (dpi)
ldpi,mdpi,hdpi,xhdpi,xxhdpi,xxxhdpi,nodpi,tvdpi,anydpi,nnndpi

ldpi:低密度屏幕;约为 120 dpi。

mdpi:中密度(传统 HVGA)屏幕;约为 160 dpi。

hdpi:高密度屏幕;约为 240 dpi。

xhdpi:超高密度屏幕;约为 320 dpi。此项为 API 级别 8 中的新增配置

xxhdpi:超超高密度屏幕;约为 480 dpi。此项为 API 级别 16 中的新增配置。

xxxhdpi:超超超高密度屏幕使用(仅限启动器图标,请参阅“支持多种屏幕”中的注释);约为 640 dpi。此项为 API 级别 18 中的新增配置。

nodpi:此限定符可用于您不希望为匹配设备密度而进行缩放的位图资源。

tvdpi:密度介于mdpi和hdpi之间的屏幕;约为213dpi。这不属于“主要”密度组。它主要用于电视,而大多数应用都不需要它。对于大多数应用而言,提供 mdpi 和 hdpi 资源便已足够,系统将视情况对其进行缩放。此项为 API 级别 13 中的新增配置

anydpi:此限定符适合所有屏幕密度,其优先级高于其他限定符。这对于矢量可绘制对象非常有用。此项为 API 级别 21 中的新增配置

nnndpi:用于表示非标准密度,其中 nnn 是正整数屏幕密度。在大多数情况下,此限定符并不适用。使用标准密度存储分区,可显著减少因支持市场上各种设备屏幕密度而产生的开销。

这六种主要密度之间的缩放比例为 3:4:6:8:12:16(tvdpi 密度忽略不计)。因此,9x9 (ldpi) 位图相当于 12x12 (mdpi)、18x18 (hdpi)、24x24 (xhdpi) 位图,依此类推。

15、触摸屏类型
notouch,finger

notouch:设备没有触摸屏。

finger:设备有一个专供用户通过手指直接与其交互的触摸屏。

16、键盘可用性
keysexposed,keyshidden,keyssoft

keysexposed:设备具有可用的键盘。如果设备启用了软件键盘(不无可能),那么即使用户未找到硬件键盘,或者该设备没有硬件键盘,也可使用此限定符。如果设备未提供软件键盘或软件键盘已停用,则只有在向用户公开硬件键盘时,才可使用此限定符。

keyshidden:设备具有可用的硬件键盘,但其处于隐藏状态,且设备未启用软件键盘。

keyssoft:设备已启用软件键盘(无论是否可见)。

17、主要的文本输入法
nokeys,qwerty,12key

nokeys:设备没有用于文本输入的硬件按键。

qwerty:设备具有硬件QWERTY键盘(无论其对用户是否可见)。

12key:设备具有包含12个按键的硬件键盘(无论其对用户是否可见)。

18、导航键可用性
navexposed,navhidden

navexposed:导航键可供用户使用。

navhidden:导航键不可用(例如位于合上的盖子后面)。

19、主要的非触摸导航方法
nonav,dpad,trackball,wheel

nonav:除了使用触摸屏以外,设备没有其他导航设施。

dpad:设备具有用于导航的方向键。

trackball:设备具有用于导航的轨迹球。

wheel:设备具有用于导航方向盘(不常见)

20、平台版本(API 级别)
示例:v3,v4,v7等等

设备支持的 API 级别。例如,v1 对应 API 级别 1(搭载 Android 1.0 或更高版本的设备);v4 对应 API 级别 4(搭载 Android 1.6 或更高版本的设备)

参考

https://developer.android.com/guide/topics/resources/providing-resources.html?hl=zh-cn

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值