首先介绍几个概念
屏幕分辨率
屏幕分辨率不是一个屏幕的概念,是手机屏幕宽度和高度两个方向上的像素点的总和,单位是像素(pixel), 1px=1个像素点,例子,htcdr6w手机是5寸的手机,宽1080,高1920。他的分辨率要这样表示,1080x1920,含义宽度方向上有1080个像素点,高度方向上有1920个像素点。
像素密度
密度,即每英寸像素点的个数,单位dpi(注意,dpi),android开发中google规定
mdpi---160dpi(每英寸160dpi)
hdpi---240dpi(mdpi x 1.5)
xhdpi---320dpi(mdpi x 2)
xxhdpi---480dpi(mdpi x 3)
xxxhdpi---640dpi(mdpi x 4)
如何计算你自己手机的每英寸的像素点的个数即每英寸的像素
如果你的手机是1080 x 1920
1,先按照初中所学的求正方形对角线的公式(勾股定理)求出对角线的的像素
y=长的平方 +宽的平方
再对y值开根号,得到w
2,用w除以你的手机的尺寸,比如 5英寸的手机就可以得到你的手机每英寸额像素点的个数了,就是你的手机每英寸的像素
android 屏幕密度(与像素无关,单位为 dp)
这也是我们android xml文件中使用dp就可以适配不同屏幕的原因。
举个例子
最早的android手机的分辨率为320 x 480
通过计算像素密度可以得到,该分辨率的手机的每英寸的像素为160dpi,在这个像素密度下,1dp=1px,即在320 x 480的手机分辨率上,1dp=1px。
其他的如下:
160dpi,1dp=1px;
240dpi,1dp=1.5px;
320dpi,1dp=2px;
480dpi,1dp=3px;
640dpi,1dp=4px;
这样在android 开发中xml文件中使用dp为单位,就可以适应不同分辨率的手机
再次,加深记忆,手机分辨率是指手机屏幕长,宽方向上的像素点的个数;像素密度是每英寸有多少像素点,屏幕密度与像素无关自适应,当在320 x 480的屏幕分辨率上时 1dp=1px。
和px,dp没有关系的sp
Scale Indelpendent Pixels,既 sp
android 开发中,用此单位设置文字大小。
图片适配
在设计图时,对于不同像素密度的应该有对应的图片大小,我记得第一次负责整个项目时,不太懂和美工说做多大的图,我就瞎点,哎,当我们新建一个工程时,有默认的ic_launcher,然后把它复制出来,到桌面上,右键属性--详细信息,就会出现图片的像素大小。那个就是美工用ps等工具做图的大小。
mdpi(48x48)
hdpi(72x72)
xhdpi(96x96)
xxhdpi(144x144)
xxxhdpi(192x192)
就写到这里吧,这些东西在开发中没卵用,但是面试有时候会问到,比如:
请问你知道对于不同的分辨率的手机google对于像素密度的规则是什么。
你知道dp吗,和px有啥区别。
像素密度和屏幕密度的区别。
dp和dpi有啥区别。
...
等等,大同小异。
本文到此结束希望对初学android的人有所帮助。大神请绕道,毕竟大神面试基本不会问这些,啊哈哈。
网友评论