Android的px、dip、sp的區別

來源:互聯網
上載者:User

一、      概述

我們在頁面配置的時候,經常會設定容器的長度,但是到底該使用哪個作為長度的單位而懊惱。

在Android中支援的描述大小地區的類型有以下幾種。

px(pixels)——像素:不同的裝置顯示效果相同,一般我們HVGA代表320x480像素,這個用的比較多。

dip(device independent pixels)——裝置獨立像素:這個和裝置硬體有關,一般哦我們為了支援WCGA、HVGA和QVGA推薦使用這個,不依賴於像素。等同於dp。

sp(scaled pixels—best for text size)——帶比例的像素。

pt(points)——磅:1pt = 1/72英寸

in(inches)——英寸

mm(millimeters)——毫米

二、      詳解

sp由於是放大像素,主要是用於字型顯示,由此根據google的建議,TextView的字型大小最好用sp做單位,而且查看TextView的源碼可知Android預設使用水平作為字型大小單位。

在Android中最常用到的還是px和dip。但是這兩個之間到底有什麼區別呢?

在HVGA屏density=160;QVGA屏density=120;WVGA屏density=240;WQVGA屏density=120
density值表示每英寸有多少個顯示點,與解析度是兩個概念。不同density下螢幕解析度資訊,以480dip*800dip的
WVGA(density=240)為例。

 

density=120時
螢幕實際解析度為240px*400px
(兩個點對應一個解析度)
狀態列和標題列高各19px或者25dip 
橫屏是螢幕寬度400px
或者800dip,工作區域高度211px或者480dip
豎屏時螢幕寬度240px或者480dip,工作區域高度381px或者775dip

 

density=160時
螢幕實際解析度為320px*533px
(3個點對應兩個解析度)
狀態列和標題列高個25px或者25dip 
橫屏是螢幕寬度533px
或者800dip,工作區域高度295px或者480dip
豎屏時螢幕寬度320px或者480dip,工作區域高度508px或者775dip

 

density=240時
螢幕實際解析度為480px*800px
(一個點對於一個解析度)
狀態列和標題列高個38px或者25dip 
橫屏是螢幕寬度800px
或者800dip,工作區域高度442px或者480dip
豎屏時螢幕寬度480px或者480dip,工作區域高度762px或者775dip

 

 


apk的資源套件中,當螢幕density=240時使用hdpi
標籤的資源
當螢幕density=160時,使用mdpi標籤的資源
當螢幕density=120時,使用ldpi標籤的資源。
不加任何標籤的資源是各種解析度情況下共用的。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.