对于手机的尺寸和屏幕的分辨率等,一直以来不是很清楚,所以花了些时间学习了一下,做一下小结,若有不对之处,还望指正。
下面以我的手机 华为C8813 为例,参数如下:
主屏尺寸: ? ? 4.5 英寸
主屏分辨率: 854×480
手机尺寸: ? ? 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 =
new
DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int
width = metrics.
widthPixels
;————-480(c8813的参数)
int
height = metrics.
heightPixels
;———–854
int
density = (
int
) metrics.
density
;——– 1
int
densityDpi = metrics.
densityDpi
;——— 240
1:像素 pixel (px)
要说分辨率,先说像素是picture和element两个单词的字母组成 ,图像成像的最小单位,越高的像素,其拥有的色板也就越丰富,越能表达颜色的真实感。
不同设备显示效果相同。这里的“相同”是指像素数不会变,比如指定UI长度是100px,那不管分辨率是多少UI长度都是100px。也正是因为如此才造成了UI在小分辨率设备上被放大而失真,在大分辨率上被缩小。
2:分辨率 Resolution
定义1:屏幕上拥有的像素的总数。注意,虽然大部分情况下分辨率都被表示成“ 宽带 x 长度” ,但分辨率并不意味着屏幕长宽比。
定义2:
指手机屏幕垂直和水平方向上的像素个数。比如分辨率是480*320,则指设备垂直方向有480个像素点,水平方向有320个像素点。
上面两个定义中,意思差不多,个人觉的定义2说的更准确一些。
当前 我的C8813的 分辨率是 : 854×480
3:密度 Density
定义:每平方英尺中的像素数。
通常的值 ?: 0.75/1/1.5
int
density = (
int
) metrics.
density
;
4:Dpi ?DensityDpi
定义:每英尺中的像素数。(dots per inch 像素密度)
例如:240 dpi 指手机水平或者垂直方向上每英尺距离有240个像素点。
而 c8813的 分辨率为 854 x 480 则 屏幕长 = 854 /240英尺 ,宽 = 480 / 240 英尺
int
densityDpi = 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)
6: Sp 放大像素
主要用于字体显示(best for textsize)。根据 google 的建议,TextView 的字号最好使用 sp 做单位,而且查看TextView的源码可知 Android 默认使用 sp 作为字号单位。
7: 各个屏幕的分辨率
QVGA ? ? ?: ?分辨率为 ? ?240*480 ? ? ? (Quarter VGA即四分之一)
HVGA ? ? :分辨率为320*480(Half-size VGA即一半)
VGA ? ? ? ?: ?分辨率为 ? ?640*480 ? ? ? ?(全称Video Graphic Array)
WVGA ? ?:分辨率为?8便宜美国vps00*480 ? ? ? ? (Wide VGA很多网页的宽度都是800,所以WVGA的手机屏幕会更加适合于浏览网页)
FWVGA ?:分辨率为???854*480?手机c8813就是
其他的分辨率就不一一说了。
72415697