现在的位置: 首页 > 综合 > 正文

手机屏幕尺寸,分辨率,密度,dpi,dip,px,sp等详解

2013年08月06日 ⁄ 综合 ⁄ 共 1928字 ⁄ 字号 评论关闭
文章目录

           对于手机的尺寸和屏幕的分辨率等,一直以来不是很清楚,所以花了些时间学习了一下,做一下小结,若有不对之处,还望指正。

下面以我的手机 华为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 = 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的 分辨率是 : 854x480

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    : 分辨率为  800*480
        (
Wide VGA 很多网页的宽度都是800,所以WVGA的手机屏幕会更加适合于浏览网页)
FWVGA  :分辨率为   854*480  
      手机c8813就是
其他的分辨率就不一一说了。

抱歉!评论已关闭.