Android屏幕适配
发布日期:2021-06-07 09:28:14 浏览次数:8 分类:技术文章

本文共 2186 字,大约阅读时间需要 7 分钟。

Android屏幕适配顺序

配置限定符名称(由高到低)

  1. MCC and MNC
  2. Language and Region 语言和区域 eg. en
  3. Layout Direction 布局方向 eg. ldrtl ldltr
  4. Smallest Width 最小宽度(不考虑是宽度还是高度) swdp eg. sw720dp
  5. Available Width 可用宽度 wdp eg. w720dp 应用为多个资源目录提供不同的此配置值时,系统会使用最接近(但未超出)设备当前屏幕宽度的值。
  6. Avalable Height 可用高度 hdp eg. h720dp
  7. Screen Size 屏幕尺寸 eg.small normal large xlarge
  8. Screen Aspect 屏幕纵横比 eg. long(宽屏) notlong(非宽屏)
  9. Screen Orientation 屏幕方向 eg. port(垂直) land(水平)
  10. UI mode UI模式 eg. car(车载手机) desk(桌面手机) television(电视) appliance(不带显示器) watch(手表)
  11. Night mode 夜间模式 eg. night notnight
  12. Screen pixel density(dpi) 屏幕像素密度, eg. ldpi mdpi hdpi xhdpi xxhdpi xxxhdpi nodpi tvdpi
  13. Touch screen type 触摸屏类型, eg. notouch(设备没有触摸屏) finger(设备有一个专供用户通过手指直接与其交互的触摸屏)
  14. Keyboard availability 键盘可用性 eg. keysexposed keyshidden keyssoft
  15. Primary text inputmethod 主要文本输入法 eg. nokeys qwerty 12key
  16. Navigation key avilability 导航键可用性 eg. navexposed navhidden
  17. Primary non-touch navigation method 主要非触摸导航方法 eg. nonav dpad trackball wheel
  18. Platform Version(API level) 平台版本(API 级别)eg. v3 v4 v7

sizes:

  • small
  • normal
  • large
  • xlarge

Android 3.2(API level 13)之后,sizes被废弃,使用available screen width 来代替。

  • smallestWidth 格式:swdp,eg. sw600dp,sw720dp
  • Avaiable screen width 格式:wdp,eg. w720dp, w1024dp
  • Available screen height 格式:hdp,eg. h720dp, h1024dp

densities:

- ldpi(low) ~ 120dpi
- mdpi(medimu) ~ 160dpi
- hdpi(high) ~ 240dpi
- xhdpi(extra-high) ~ 320dpi
- xxhdpi(extra-extra-high) ~ 480dpi
- xxxhdpi(extra-extra-extra-high) ~ 640dpi
- nodpi 它可用于您不希望缩放以匹配设备密度的位图资源
- tvdpi 介于mdpi和hdpi之间,约为213dpi。主要用于电视

Orientation

  • land
  • port

限定符命名规则

  • 可以为单组资源指定多个限定符,并使用短划线分隔。例如,drawable-en-rUS-land 适用于横排美国英语设备。
  • 这些限定符必须遵循限定符的顺序。即按优先级从高到低。例如:

错误: drawable-hdpi-port/

正确: drawable-port-hdpi/

  • 不能嵌套备用资源目录。例如,您不能拥有 res/drawable/drawable-en/。
  • 值不区分大小写。在处理之前,资源编译器会将目录名称转换为小写,以避免不区分大小写的文件系统出现问题。 名称中使用的任何大写字母只是为了便于认读。
  • 对于每种限定符类型,仅支持一个值。例如,若要对西班牙语和法语使用相同的 Drawable 文件,则您肯定不能拥有名为 drawable-rES-rFR/ 的目录,而是需要两个包含相应文件的资源目录,如 drawable-rES/ 和 drawable-rFR/。然而,实际上您无需将相同的文件都复制到这两个位置。相反,您可以创建指向资源的别名。

Android资源匹配算法

这里写图片描述

系统使用以下逻辑决定要使用的资源:

  1. 淘汰与设备配置冲突的资源文件(屏幕像素密度(dpi)是唯一一个不会因为冲突而淘汰的限定符。)
  2. 选择优先级最高的限定符,先从MCC开始,然后下移
  3. 是否有资源目录包括此限定符?若无,返回第2步,看下一个限定符;若有,继续执行第4步
  4. 淘汰不含此限定符的资源目录
  5. 返回并重复第2步、第3步和第4步,直到只剩下一个目录为止。

注:限定符的优先级,比设备完全匹配的限定符数量更加重要。

参考:

转载地址:https://blog.csdn.net/Next_Second/article/details/53005966 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Android指定打包资源文件
下一篇:Android网络请求框架Volley学习

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2024年04月17日 07时19分16秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

[Leetcode 每日精选](本周主题-并查集) 面试题 17.07. 婴儿名字 2019-04-26
[Leetcode 每日精选](本周主题-并查集) 721. 账户合并 2019-04-26
[Leetcode 每日精选](本周主题-并查集) 399. 除法求值 2019-04-26
[Leetcode 每日精选](本周主题-并查集) 959. 由斜杠划分区域 2019-04-26
[Leetcode 每日精选](本周主题-并查集) 130. 被围绕的区域 2019-04-26
[leetcode 剑指offer系列] 面试题04. 二维数组中的查找 2019-04-26
[leetcode 剑指offer系列] 面试题05. 替换空格 2019-04-26
[leetcode 剑指offer系列] 面试题06. 从尾到头打印链表 2019-04-26
剑指 Offer 07. 重建二叉树 - leetcode 剑指offer系列 2019-04-26
剑指 Offer 09. 用两个栈实现队列 - leetcode 剑指offer系列 2019-04-26
剑指 Offer 10- I. 斐波那契数列 - leetcode 剑指offer系列 2019-04-26
剑指 Offer 11. 旋转数组的最小数字 - leetcode 剑指offer系列 2019-04-26
剑指 Offer 12. 矩阵中的路径 - leetcode 剑指offer系列 2019-04-26
剑指 Offer 13. 机器人的运动范围 - leetcode 剑指offer系列 2019-04-26
剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 - leetcode 剑指offer系列 2019-04-26
剑指 Offer 26. 树的子结构 - leetcode 剑指offer系列 2019-04-26
剑指 Offer 27. 二叉树的镜像 - leetcode 剑指offer系列 2019-04-26
剑指 Offer 28. 对称的二叉树 - leetcode 剑指offer系列 2019-04-26
剑指 Offer 29. 顺时针打印矩阵 - leetcode 剑指offer系列 2019-04-26
剑指 Offer 30. 包含min函数的栈 - leetcode 剑指offer系列 2019-04-26