为了查看方便,特意贴一段 Google API 文档:http://developer.Android.com/intl/zh-cn/guide/practices/screens_support.html
近期做些关于手机适配的工作。
下面来总结一下,希望可以对大家有帮助,本人能力有限,如果有解释失误的地方,请务必帮忙指出,谢谢。
首先引入几个概念。
PPI : Pixels Per Inch的缩写简称,表示的是每英寸显示屏所拥有的像素(pixel)数目。
DPI : Dots Per Inch , 最初用于衡量打印物上每英寸的点数密度,就是说你的打印机可以在一英寸内打多少个点。
DPI用来表示输出设备的输出精度,如打印机,显示器
DPI表示的是 像点/英寸(每英寸长度上有多少个打印点或像点)
PPI用来表示输入设备的输入精度,如扫描仪,数码相机
PPI表示的是 像素/英寸(每英寸长度上有多少个像素)
显然,在谈到Android设备屏幕时,用DPI 比较合适,官方文档中也是用DPI来说明的。当然,如果有人说成PPI,也并不妨碍理解,只是这种说法不太准确。
关于如何计算DPI ,下面我们拿三星S3为例。
根据三星官网给的 信息:
The S III's HD Super AMOLED display measures 4.8 inches (120 mm) on the diagonal. With a 720×1280-pixel (720p) resolution, its pixel per inch (PPI, a measure of pixel density) is a relatively high 306。
我们可知:分辨率为 720x1280(高宽比为16:9) , 4.8英寸 , 306dpi。
那么,这个dpi是如何计算出来的呢?
由于对角线长为4.8英寸,我们要计算对角线上一共有多少像素点。
勾股定理可知:斜对角线的像素点 =
进而求每英寸的像素点个数,即 (在Android中,大家把PPI 和 DPI 看成一个东西即可)
这么计算后可知,三星S3的DPI = 306. 即,该手机每英寸有306个像素点。