对于手机的尺寸和屏幕的分辨率等,一直以来不是很清楚,所以花了些时间学习了一下,做一下小结,若有不对之处,还望指正。
下面以我的手机 华为C8813 为例,参数如下:
主屏尺寸: 4.5 英寸
主屏分辨率: 854x480
手机尺寸: 132.5x67x9.3 mm
一:屏幕的尺寸 (Screen Size)
1: 主屏尺寸
表示 主屏对角线的长度 (不是整个手机的长度)
其中以 1 英寸 = 2.54 cm
所以 4.5 英寸 = 4.5 * 2.54 = 11.43 cm ,一般说的手机的屏幕大小都是指的主屏的尺寸,而不是手机的面积
2: 手机尺寸
表示手机的实际大小(整个手机),也称物理尺寸 132.5x67x9.3mm 其中9.3mm是厚度二: 屏幕分辨率
Android 获取屏幕的分辨率如下: DisplayMetrics metrics =newDisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics);intwidth = metrics.widthPixels;-------------480(c8813的参数)intheight = metrics.heightPixels;-----------854intdensity = (int) metrics.density;-------- 1intdensityDpi = metrics.densityDpi;--------- 2401:像素 pixel (px)
要说分辨率,先说像素是picture和element两个单词的字母组成 ,图像成像的最小单位,越高的像素,其拥有的色板也就越丰富,越能表达颜色的真实感。
不同设备显示效果相同。这里的“相同”是指像素数不会变,比如指定UI长度是100px,那不管分辨率是多少UI长度都是100px。也正是因为如此才造成了UI在小分辨率设备上被放大而失真,在大分辨率上被缩小。
2:分辨率 Resolution
定义1:屏幕上拥有的像素的总数。注意,虽然大部分情况下分辨率都被表示成“ 宽带 x 长度” ,但分辨率并不意味着屏幕长宽比。 定义2:指手机屏幕垂直和水平方向上的像素个数。比如分辨率是480*320,则指设备垂直方向有480个像素点,水平方向有320个像素点。 上面两个定义中,意思差不多,个人觉的定义2说的更准确一些。 当前 我的C8813的 分辨率是 : 854x4803:密度 Density
定义:每平方英尺中的像素数。 通常的值 : 0.75/1/1.5intdensity = (int) metrics.density;4:Dpi DensityDpi
定义:每英尺中的像素数。(dots per inch 像素密度) 例如:240 dpi 指手机水平或者垂直方向上每英尺距离有240个像素点。 而 c8813的 分辨率为 854 x 480 则 屏幕长 = 854 /240英尺 ,宽 = 480 / 240 英尺intdensityDpi = metrics.densityDpi;5: Dip (dp) 设备独立像素
Dip (Device-independent pixel),在布局中用"dp",不依赖像素,这个是Android 推荐了在布局中使用dp作为单位.注意:有个公式
dip (dp) = 设备密度dpi/160 * pixel = Dpi /160 * pixel
例如:c8813 的 设备密度 densityDpi = 240 所以 dip = 240 / 160 * pixel = 1.5 pixel如果dpi = 160 ,则 1dp = 1pixel (px)