/**
* 作者:crazyandcoder
* 联系:
* QQ : 275137657
* email: lijiwork@sina.com
* 转载请注明出处!
*/
android 屏幕分辨率总结
接触androidUI设计总是会碰到一些概念如:dpi、ppi、sp、dp等,这些都是什么意思呢?以及我们在使用这些时需要注意些什么?接下来我们就来做个总结,方便以后使用。
一、基本概念
- px
像素 pixels,屏幕中实际的像素点单位,如50px、100px等。当我们放大一张图片时会发现图片是由一个个小方 块组成的,这每一个方块就是一个像素点。
- dp(dip)
设备独立像素 (device independent pixels),即密度无关像素,以160dpi为基准,1px=1dpi。
- 分辨率
就是说屏幕中横纵含有像素点数。1px=1像素点数。一般是以纵像素点数*横像素点数的总和,如1920*1080、480*320等。
- 屏幕尺寸
屏幕对角线的长度,1英寸=2.54cm.
- dpi
屏幕像素密度(dot per inch),打印分辨率,即每英寸能打印得点数,即打印精度,它与屏幕尺寸和屏幕分辨率有关。
- ppi
图像分辨率(pixels per inch),在图像中,每英寸所包含得像素数目。dpi主要用于输出,重点是打印设备 上,ppi对于设计师应该比较熟悉,photoshop画布得分辨率通常设置为72像素/英寸,这个单位其实就是ppi,尽管概念不同,但对于移动设备得显示屏来说,可以看作ppi=dpi。
运算方式:PPI=√(长度像素²+宽度像素²)/ 屏幕对角线英寸数。即:长、宽各自平方和得开方,再除以对角线得英寸数。
对于iPhone5来说:其ppi=√(1136px² + 640px²)/4 in=326ppi(视网膜Retina屏)
对于android手机来说:一个不确切的分法是,720 x 1280 的手机很可能接近 320 dpi (xhdpi模式),480 x 800 的手机很可能接近 240 dpi (hdpi模式),而320 x 480 的手机则很接近 160 dpi(mdpi模式)。
- sp
放大像素,scaled pixels,主要用字体显示,建议不低于12sp,一般用12sp、14sp、18sp、22sp,不建议使用奇数个单位sp。
二、换算关系
- 换算
android开发中,文字大小的单位是sp,其他非文字的尺寸单位是dp,但是我们在设计时用的单位一般都是像素px,这些单位是如何进行换算的,对于android开发、设计人员是有必要了解的。
px=dp*ppi/160
px=sp*ppi/160
1)dp:Density - indenpendent pixels ,以160PPI屏幕为标准,则1dp=1px。对于320PPI屏幕,则 1dp*320ppi/160=2px;
2)sp:Scale - independent pixels,它是android的字体单位,以160PPI屏幕为标准,若字体大小为100%时, 1sp=1px,对于320PPI的屏幕,1sp*320ppi/160=2px。
简单的说,px是UI设计师在ps中使用的单位,同时也是手机屏幕上所显示的,dp是开发卸载layout的时候使用的尺寸单位。
- 换算原因
为什么要用sp、dp替代px呢?因为他们不会随着PPI的变化而变化,在相同物理尺寸和不同ppi下,他们呈现的高度大小都是相同的,也就是更接近物理呈现,而px不行。
- 举例
当运行在mdpi模式下时,1dp=1px。也就是说:如果设计师在ps设计图中标注的item高度为48px,那么我们在 layout中定义的item高度就是48dp。
当运行在hdpi模式下时,1dp=1.5px。也就是说:如果设计师在ps设计图中标注的item高度为72px,那么我们在 layout中定义的item高度就是48dp。
当运行在xhdpi模式下时,1dp=2px。也就是说:如果设计师在ps设计图中标注的item高度为96px,那么我们在 layout中定义的item高度就是48dp。