Android开发中的使用单位问题的处理总结

目前最新的SDK是推荐dp这个单位,其实在真正开发过程中,无论是dp还是dip都不怎么会影响到显示效果(dip原本是dip,为了和sp这个单位同意,改名成了dp)

px
全拼pixel,我们常说的像素,构成我们屏幕上图像的最小单位
概念:显示分辨率是显示器在显示图像时的分辨率,分辨率是用点来衡量的,显示器上这个“点”就是指像素(pixel)。显示分辨率的数值是指整个显示器所有可视面积上水平像素和垂直像素的数量。例如800×600的分辨率,是指在整个屏幕上水平显示800个像素,垂直显示600个像素。
图像分辨率,指图像中存储的信息量,是每英寸图像内有多少个像素点,分辨率的单位为PPI(Pixels Per Inch)

dpi
作为屏幕分辨率单位如果只有px,明显太单薄了,于是有了dpi这个新单位。
dpi一种像素密度,英文全称是 Dots Per Inch 字面上意思也很好理解,就是指每英寸的像素数量,这里Inch是英寸。1英寸 = 2.54cm,我们项目中的res中的 hdpi,xdpi,xhdpi就是用的这个单位。一般情况 ldpi是120,mdpi是160,hdpi是240,xhdpi是320
dp/dip的使用(dip 全称是Density-independent pixel 翻译过来就是 像素无关密度)
px = dip*dpi/160
试想现在有2个屏幕,屏幕的大小都是1寸,A屏幕密度为160,B屏幕密度为320。要去显示一个为宽度为80按钮button。如果用px为单位,A屏幕上button占屏幕的一半0.5寸,B屏幕上button占屏幕的四分之一 0.25寸,小了一半。如果用dip 为单位 80dip
A屏幕上的大小是:80*160/160=80px,
B屏幕上的大小 : 80*320/160 = 160px 。
dp 的意义是根据你看到的实际大小。在应用中设置对应的dp值,而使得不同的屏幕上看起来一样大。
sp 用于设置字体与dp类似但是可以根据手机的设计再次进行调整。

参考文章:教你彻底弄清楚dpi 、 dip 、分辨率、屏幕尺寸、px、density 关系

猜你喜欢

转载自blog.csdn.net/qq_35495763/article/details/81879416