Android屏幕适配

一、什么是屏幕适配

屏幕适配:为一组资源指定配置特定的备用资源。通俗的来讲,即指为应用程序适配不同尺寸的设备。

二、屏幕适配规则

在 res/ 中创建以 <resources_name>-<config_qualifier> 形式命名的新目录。

  • <resources_name> 是相应默认资源的目录名称。
  • <qualifier> 是指定要使用这些资源的各个配置的名称。

您可以追加多个 。以短划线将其分隔。

注意:追加多个限定符时,必须按照表中列出的相同顺序放置限定符。如果限定符的顺序错误,则该资源将被忽略。

配置限定符值描述
MCC 和 MNC示例:mcc310 mcc310-mnc004 mcc208-mnc00 等等移动设备国家代码 (MCC),(可选)后跟设备 SIM 卡中的移动设备网络代码 (MNC)
语言和区域en、fr、en-rUS语言通过由两个字母组成的 ISO 639-1 语言代码进行定义,可以选择后跟两个字母组成的 ISO 3166-1-alpha-2 区域码(前缀用小写字母 r)
布局方向ldrtl、ldltr应用的布局方向。ldrtl 是指“布局方向从右到左”。ldltr 是指“布局方向从左到右”(默认的隐式值)
smallestWidthswdp 示例:sw320dp、sw600dp、sw720dp等等屏幕的基本尺寸,由可用屏幕区域的最小尺寸指定。具体而言,设备的 smallestWidth 是屏幕可用高度和宽度的最小尺寸(您也可将其视为屏幕的“最小可能宽度”)。无论屏幕的当前方向如何,您均可使用此限定符确保应用界面的可用宽度至少为 <N> dp。
可用宽度wdp 示例:w720dp、w1024dp等等指定资源应使用的最小可用屏幕高度(以“dp”为单位,由 <N> 值定义)。当屏幕方向在横向和纵向之间切换时,此配置值也会随之变化,以匹配当前的实际高度。
屏幕尺寸small、normal、large、xlarge
  • small:尺寸类似于低密度 VGA 屏幕的屏幕。小屏幕的最小布局尺寸约为 320x426 dp。例如,QVGA 低密度屏幕和 VGA 高密度屏幕
  • normal:尺寸类似于中等密度 HVGA 屏幕的屏幕。标准屏幕的最小布局尺寸约为 320x470 dp。例如,WQVGA 低密度屏幕、HVGA 中等密度屏幕、WVGA 高密度屏幕。
  • large:尺寸类似于中等密度 VGA 屏幕的屏幕。大屏幕的最小布局尺寸约为 480x640 dp。例如,VGA 和 WVGA 中等密度屏幕。
  • xlarge:明显大于传统中等密度 HVGA 屏幕的屏幕。超大屏幕的最小布局尺寸约为 720x960 dp。在大多数情况下,屏幕超大的设备体积太大,不能放进口袋,最常见的是平板式设备。此项为 API 级别 9 中的新增配置。
屏幕纵横比long、notlong
  • long:宽屏,如 WQVGA、WVGA、FWVGA
  • notlong:非宽屏,如 QVGA、HVGA 和 VGA
圆形屏幕round、notround
  • round:圆形屏幕,例如圆形可穿戴式设备
  • notround:方形屏幕,例如手机或平板电脑
广色域round、notround
高动态范围 (HDR)highdr、lowdr
屏幕方向port、land
界面模式car、desk、television、appliance、watch、vrheadset
夜间模式night、notnight
屏幕像素密度 (dpi)ldpi、mdpi、hdpi、xhdpi、xxhdpi、xxxhdpi、nodpi、tvdpi、anydpi、nnndpi
触摸屏类型notouch、finger
键盘可用性keysexposed、keyshidden、keyssoft
主要的文本输入法nokeys、qwerty、12key
导航键可用性navexposed、navhidden
主要的非触摸导航方法nonav、dpad、trackball、wheel
平台版本(API 级别)示例:v3、v4、v7等等

三、限定符命名规则

以下是一些关于使用配置限定符名称的规则:

  • 您可以为单组资源指定多个限定符,并使用短划线分隔。例如,drawable-en-rUS-land 适用于屏幕方向为横向的美国英语设备
  • 这些限定符必须遵循表中列出的顺序。例如:
    • 错误:drawable-hdpi-port/
    • 正确:drawable-port-hdpi/
  • 不能嵌套备用资源目录。例如,您的目录不能为 res/drawable/drawable-en/。
  • 值不区分大小写。在处理之前,资源编译器会将目录名称转换为小写,以免不区分大小写的文件系统出现问题。名称中使用的所有大写字母只是为了便于认读。
  • 每种限定符类型仅支持一个值。例如,若要对西班牙语和法语使用相同的可绘制对象文件,则您不能拥有名为 drawable-rES-rFR/ 的目录,而是需要两个包含相应文件的资源目录,如 drawable-rES/ 和 drawable-rFR/。

四、总结

文章中存在错误或不妥之处,请各位看官留言斧正,谢谢!

参考:https://developer.android.google.cn/guide/topics/resources/providing-resources

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值