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 寸平板电脑 ;

加上 sw800dp 限定符 , 对应 11 寸平板电脑 ;

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

华为matePad11 以显示大小标准为例:

显示大小

sw

最大

420dp

较大

480dp

533dp

默认

640dp

较小

720dp

联想小新pad plus sw为800dp

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

今日头条官方适配方案

猜你喜欢

转载自blog.csdn.net/baidu_24743861/article/details/129204099