ndroid的px dip sp的區別

2021-08-26 16:41:24 字數 1320 閱讀 8151

一、概述

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

在android中支援的描述大小區域的型別有以下幾種。

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

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

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

in(inches)——英吋

mm(millimeters)——公釐

二、詳解

sp由於是放大畫素,主要是用於字型顯示,由此根據google的建議,textview的字型大小最好用sp做單位,而且檢視textview的原始碼可知android預設使用sp作為字型大小單位。

在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標籤的資源。

不加任何標籤的資源是各種解析度情況下共用的。

container of 的的的原理

另外一篇,同樣精彩,揭開linux核心中container of的神秘面紗 華清遠見嵌入式學院講師。在linux 核心中有乙個大名鼎鼎的巨集container of 這個巨集是用來幹嘛的呢?我們先來看看它在核心中是怎樣定義的。呵呵,乍一看不知道是什麼東東。我們先來分析一下container of p...

存在的就是合理的,發生的即是必然的。

筆者有時候會想,什麼是對,什麼是錯?對於追求某一件事情之前首先會考慮,為什麼我要做這件事情。所以經過自我分析和生活周邊環境的總結。我認為,對於乙個人來,這是在站在個體的角度上說。什麼是對的?就是你自己覺得是對的,它就是對的。不過這個只是你自己的想法。主觀上的正確,不代表客觀上也受到了別人的認可。就拿...

Apache的rewrite的重寫相關的引數

apache mod rewrite規則重寫的標誌一覽 使用mod rewrite時常用的伺服器變數 rewriterule規則表示式的說明 匹配任何單字元 chars 匹配字串 chars chars 不匹配字串 chars text1 text2 可選擇的字串 text1或text2 匹配0到1...