天天看點

在Android中,px,dp,dip,sp的不同之處

   最近在學習android開發,一直沒有弄清楚px,dp,dip,sp的差別。今天正好有時間,就花時間研究了一下。

    衆所周知,android廠商非常多,各種尺寸的android手機、平闆層出不窮。導緻了android生态環境的碎片化現象越來越嚴重。google公司為了解決分辨率過多的問題,在android的開發文檔中定義了px,dp,dip,sp,友善開發者适配不同分辨率的android裝置。

1.基礎知識:

    mm:millimeters 毫米,長度機關。

    in:inches  英寸,長度機關,螢幕實體尺寸大小的基本機關。

    pt:points  一個标準機關,大小為一英寸的螢幕大小的1/72。

    dpi: dots per inch 即每英寸的像素點。

    舉個例子:

        假設qvga(320*240)分辨率的螢幕實體尺寸是(2英寸*1.5英寸),那麼這部手機的dpi=160。

    screen size(螢幕尺寸)指的是手機實際的實體尺寸。

    如iphone4s是3.5英寸,這裡指的是手機螢幕對角線的長度是3.5英寸。

    resolution(分辨率)指手機螢幕橫、豎方向像素個數。

   常見的手機分辨率:qvga(240×320像素),hvga(480×320像素),wvga(800×480像素),720p(1280x720像素),1080p(1920x1080像素),2k(2560x1440像素)

2.基本定義:

    px (pixel的縮寫,即像素) 是指一個像素。

    sp  (scale-independent pixels)是指比例獨立像素。

    dip (device independent pixels)是指裝置獨立像素。

    dp:(density-independent pixel)在android文檔中(http://developer.android.com/guide/practices/screens_support.html#terms),它的計算方法是:px = dp * (dpi / 160)。

    看一下dp的機關是什麼:像素 = dp的機關 * 像素/英寸  。可以看出dp的機關是長度機關英寸。1dp的長度 = 1 * dpi / 160 * 1 / dpi 英寸 = 1 / 160 英寸 。

   dp的意義是:你可以根據看到的實際大小,在應用中設定對應的dp值,而使得不同的裝置上看起來一樣大。

3.不同之處

   px(像素)表示螢幕的真實像素,比如現在流行的1080p手機和2k手機,1080p手機就是1920x1080像素,也就是說這個手機的螢幕橫向有1080個像素,縱向有1920個像素。這個值是絕對的,是多少就是多少,不會改變。

   sp(比例獨立像素),也就是說是與密度和字型縮放度無關的像素,主要用于字型的大小。

   dip(裝置獨立像素)這個是邏輯像素機關,其實就是dp。

    歡迎讨論交流,我的郵箱是[email protected]

    歡迎轉載,轉載請注明網址,謝謝!<b>http://www.cnblogs.com/johntsai/p/3875561.html</b>

繼續閱讀