Android 屏幕适配方案解析(一)

2022-05-31  本文已影响0人  沪漂意哥哥

自Android系统发布以来,似乎一直绕不开屏幕适配这个话题。毫无疑问,Android系统能发展到今天,离不开其开放性,而随着国内手机厂商的崛起,任何用户、开发者、OEM厂商、运营商都可以对Android进行定制,于是导致长期以来一直诟病的碎片化严重的问题。
例如:

而当Android系统、屏幕尺寸、屏幕密度出现碎片化的时候,就很容易出现同一元素在不同手机上显示不同的问题,为了保证某一元素在Android不同尺寸、不同分辨率的手机上具备相同的显示效果,这个时候就需要对屏幕进行适配啦。

屏幕尺寸

屏幕尺寸指屏幕的对角线的物理长度,单位是英寸,1英寸=2.54厘米。

比如常见的屏幕尺寸:5.0、5.99、6.0等等

屏幕分辨率

屏幕分辨率是指手机在横向、纵向上的像素点数总和,单位是px,1px=1个像素点,一般以纵向像素*横向像素。

比如分辨率2160x1080的手机,表示高度上有2160个像素点,而宽度上有1080个像素点,屏幕分辨率为:2160*1080。

Android手机比较常见的分辨率为:320x480、480x800、720x1280、1080x1920。

屏幕像素密度

屏幕像素密度是指每英寸上的像素点数,单位是dpi,即“dot per inch”的缩写。

比如设备内每英寸有320个像素,那么该设备的屏幕像素密度=320dpi。

屏幕尺寸、分辨率、像素密度三者关系

屏幕像素密度与屏幕尺寸和屏幕分辨率有关,在单一变化条件下,屏幕尺寸越小、分辨率越高,像素密度越大,反之越小。

手机的屏幕分辨率是宽x高,屏幕大小是以寸为单位,那么三者的关系是: image.png

这里举个例子:假如手机的屏幕分辨率是2160x1080,屏幕大小是5.99英寸,对于一部手机来说这些都是已知的,求这手机的像素密度是多少?


image.png

即该手机每英寸有403个像素。

px

px即像素,是屏幕上显示数据的最基本的点,上面介绍屏幕分辨率的单位就是px,包括UI设计图、Android原生API都会以px作为统一的计量单位。

dpi

dpi即屏幕像素密度,每英寸上的像素点数,计算方式上面已经介绍过了,这里就不重复啦。

dp、dip

dp应该比较熟悉,我们设置固定数值的时候都是以dp为单位,而dp和dip是一个意思,都是Density Independent Pixels的缩写,即密度无关像素,与终端上的实际物理像素点无关,可以保证在不同屏幕像素密度的设备上显示相同的效果。

举个例子:比如我们想设置一张图片的宽度为屏幕的一半,那么:

sp

sp即scale-independent pixels,与dp类似,通常用于指定字体的大小,当用户修改手机显示的字体时,字体大小会随之改变。

dp与px的转换

通常UI设计师给的设计图是以px为单位的,Android开发则是使用dp作为单位的,那么我们需要进行转换,换算关系为:

px = dp * (dpi / 160)
image.png

在Android中,规定以160dpi(即屏幕分辨率为320x480)为基准:1dp=1px

上一篇 下一篇

猜你喜欢

热点阅读