当前位置: 首页 > news >正文

Android 适配手机和平板

一、屏幕适配限定符

Android 系统加载应用资源时 , 会根据当前运行应用的设备的相关属性 , 如 : 屏幕尺寸 / 屏幕像素密度 / 宽高比 / 屏幕方向 等属性 , 加载不同的屏幕适配限定符目录下的资源 ;

如 : 横竖屏切换时 , res/layout-land 目录中 , 存放的是横屏布局 , res/layout-port 目录中 , 存放的是竖屏布局 ;

屏幕尺寸限定符 :

small : 小屏幕 ;

normal : 标准屏幕 ;

large : 大屏幕 ;

xlarge : 超大屏幕 ;

屏幕密度限定符 :

ldpi : 低屏幕像素密度 , 0 < d p i ≤ 120 ;

mdpi : 中屏幕像素密度 , 120 < d p i ≤ 160 ;

hdpi : 高屏幕像素密度 , 160 < d p i ≤ 240 ;

xhdpi : 超高屏幕像素密度 , 240 < d p i ≤ 320;

xxhdpi : 超超高屏幕像素密度 , 320 < d p i ≤ 480 ;

xxxhdpi : 超超超高屏幕像素密度 , 480 < d p i ≤ 640 ;

屏幕方向限定符 : 一般是用于横竖屏切换时进行适配 ;

land : 横线屏幕 ;

port : 纵向屏幕 ;

屏幕宽高比限定符 : 标准屏幕宽高比为 16 : 9 16:916:9 ;

long : 比标准屏幕要长的屏幕 , 如 20 : 9 20:920:9 , 21 : 9 21:921:9 ;

notlong : 标准屏幕 ;

二、手机/平板电脑设备屏幕适配

平板电脑市场占有率

Android 平板市场占有率如下 , 大概还是占了 40% 左右 , 因此平板适配还是很重要的 ;

密度无关像素计算

一般情况下 , 平板电脑的布局或图片资源 , 放在 res/layout-swxxdp 目录下 , 其中的 xx 是横向的 密度无关像素 ( DIP , Desity Independent Pixels ) 值 , 单位是 dp / dip ;

在 【Android 屏幕适配】屏幕适配基础概念 , 计算了 6.5 寸屏幕 , 1920 × 1080 像素的屏幕的 屏幕像素密度 ( Dots Per Inch , 每英寸的像素点个数 ) , 值为 500 , 也就是每英寸有 500 个像素点 ;

该设备的横向 密度无关像素 ( DIP , Desity Independent Pixels ) 值为 345.6 ;

手机设备限定符

在 布局 或 图片 目录名称中 , 加上 sw360dp 限定符 , 几乎兼容所有的手机设备 ; 当前市面上的手机 , 屏幕宽度 很少有超过 360 的 ;

只要横向 密度无关像素 ≤ 360 , 就可以使用 sw360dp 限定符下的资源 , 如 res/layout-sw360dp 目录下的资源 ;

平板设备限定符

在 布局 或 图片 目录名称中 ,

加上 sw480dp 限定符 , 对应 7寸平板电脑 ;

加上 sw560dp 限定符 , 对应 8寸平板电脑 ;

加上 sw720dp 限定符 , 对应 10 寸平板电脑 ;

举个例子,小米5的dpi是480,横向像素是1080px,根据px=dp(dpi/160),横向的dp值是1080/(480/160),也就是360dp,系统就会去寻找是否存在value-sw360dp的文件夹以及对应的资源文件。如果找不到,系统就会去向下寻找,下面的图就会找到 value-sw320dp的文件夹。

可以使用谷歌官方推荐的screenMatch进行适配

http://www.lryc.cn/news/18724.html

相关文章:

  • 时序预测 | MATLAB实现LSTM-SVR(长短期记忆神经网络-支持向量机)时间序列预测
  • 分阶段构建golang运行环境Dockerfile镜像
  • Vue-cli脚手架在做些什么(源码角度分析)
  • 【Nginx】|入门连续剧——安装
  • 从0开始学python -38
  • 算法设计与分析期末考试复习(二)
  • 九龙证券|4D毫米波雷达成市场新宠,相关概念股大涨,会贡献多少业绩?
  • Git天天用,不得不看的那些事
  • IDE 文档注释使用,模板注释,ide配置templates
  • 力扣-查询近30天活跃用户数
  • 企企通聚源池| 聚合海量资源全网寻源,赋能供采双方撮合交易
  • 【算法数据结构体系篇class09】:链表问题:快慢指针、回文结构、复制、中点,分区、相交
  • 实验室信息化管理行业方案
  • docker学习
  • Linux 常用命令
  • 数据结构-顺序表(2)
  • 初学C/C++内存管理--new和delete的使用
  • 【Java】volatile
  • 混沌工程 Chaos Mesh 实践经验(持续更新)
  • 追梦之旅【数据结构篇】——详解C语言实现链栈
  • oracle数据库常用操作
  • 一文教会你如何在Linux系统中使用Docker安装Redis 、以及如何使用可视化工具连接【详细过程+图解】
  • mysql 内存架构
  • Helm安装Harbor
  • 梯度下降优化器:SGD -> SGDM -> NAG ->AdaGrad -> AdaDelta -> Adam -> Nadam -> AdamW
  • Ubuntu下gcc多版本管理
  • 吃透8图1模板,人人可以做架构
  • 骨传导耳机推荐哪款好,列举几款是市面上热销的骨传导耳机
  • CFS三层内网渗透
  • SQL server设置用户只能访问特定数据库、访问特定表或视图