系列文章:
前言
由于Android系统的开放性,各大手机厂商都会对Android系统进行定制,导致Android系统设备的碎片化,出现各种屏幕尺寸的设备,为了让APP能够比较美观的显示在不同尺寸、分辨率、像素密度的设备上,那就要在开发的过程中对屏幕进行适配。本篇先介绍一些相关概念,下篇介绍具体的适配方法。
术语和概念
- 什么是屏幕尺寸、屏幕分辨率、屏幕像素密度?
- 什么是dp、dip、sp?他们之间的关系是什么?
- 什么是mdpi、hdpi、xhdpi、xxhdpi、xxxhdpi?如何计算和区分?
屏幕尺寸
- 指的是手机屏幕对角线的长度,单位是英寸,换算关系是1英寸=2.54厘米,比如我们常说的小米6的屏幕尺寸是5.15寸
屏幕分辨率
- 指的是屏幕上物理像素的总数,单位px,比如小米6分辨率是1920*1080
- 适配时不会直接使用分辨率;而只应关注通用尺寸和密度组指定的屏幕尺寸及密度
屏幕密度
- 屏幕物理区域中的像素量;通常称为dpi(每英寸点数),对角线每英寸的像素点的个数
- Android将所有屏幕密度分组为六种通用密度ldpi(低),hdpi(高),xhdpi(超高),xxhdpi(超超高),xxxhdpi(超超超高)
-
计算公式如下:
dpi计算公式
height和width即为长宽的像素,平方和即为对角线的像素个数,size即屏幕尺寸,如下图所示:
dpi计算公式
密度无关像素 dp(dip)
- dp也叫dip,是device independent pixels
- 在定义UI布局时使用的虚拟像素单位,以密度无关方式表示布局位置,以确保再不同密度的屏幕上正常显示UI
- dp单位转换为屏幕像素:px = dp * (dpi / 160),例如,在240dpi屏幕上,1dp等于1.5px
sp
- sp,即scale-independent-pixels,与dp类似,但是可以根据文字大小首选项进行放缩,是设置字体大小的御用单位
mdpi、hdpi、xhdpi、xxhdpi、xxxhdpi
-
修饰了drawable文件夹和value文件夹,用来区分不同像素图片和dimen值,不同像素图片需要放在不同文件夹下
名称 dpi范围 mdpi 120 ~ 160 hdpi 160 ~ 240 xhdpi 240 ~ 320 xxhdpi 320 ~ 480 xxxhdpi 480 ~ 640 在设计图标时:对于五种主流像素密度(mdpi, hdpi, xhdpi, xxhdpi, xxxhdpi)
应按照(2:3:4:6:8)的比例进行缩放,(1x, 1.5x, 2x, 3x, 4x)例如:尺寸为48x48dp的图标,表示在mdpi的屏幕上其尺寸应为48x48px
在hdpi的屏幕上其实际大小是mdpi的1.5倍(72x72px)… 依此类推
网友评论