ppi = pixels per inch,每英吋上的畫素數,即 "畫素密度"
drawable-ldpi、drawable-mdpi、drawable-hdpi 精度分別為低、中(android預設)、高。
對應的大小為:360x360、480x480、720x720。
xxhdpi: 1440*1440
xhdpi:960*960
hdpi:720*720
mdpi:480*480
ldpi:360*360
dp是虛擬畫素,在不同的畫素密度的裝置上會自動適配,比如:
在320x480解析度,畫素密度為160,1dp=1px
在480x800解析度,畫素密度為240,1dp=1.5px
計算公式:1dp*畫素密度/160 = 實際畫素數
drawable- hdpi、drawable- mdpi、drawable-ldpi的區別:
(1)drawable-hdpi裡面存放高解析度的,如wvga (480x800),fwvga (480x854)
(2)drawable-mdpi裡面存放中等解析度的,如hvga (320x480)
(3)drawable-ldpi裡面存放低解析度的,如qvga (240x320)
系統會根據機器的解析度來分別到這幾個資料夾裡面去找對應的。
ppi的運算方式是:
ppi = √(長度畫素數² + 寬度畫素數²) / 螢幕對角線英吋數
dp:density-independent pixels,以160ppi螢幕為標準,則1dp=1px,
dp和px的換算公式 :
dp*ppi/160 = px。比如1dp x 320ppi/160 = 2px。
sp:scale-independent pixels,它是安卓的字型單位,以160ppi螢幕為標準,當字型大小為 100%時, 1sp=1px。
sp 與 px 的換算公式:sp*ppi/160 = px
總結得出:
/**
* dp、sp 轉換為 px 的工具類
* * @author fxsky 2012.11.12
* */
public class displayutil
/**
* 將dip或dp值轉換為px值,保證尺寸大小不變
* * @param dipvalue
* @param scale
* (displaymetrics類中屬性density)
* @return
*/
public static int dip2px(context context, float dipvalue)
/**
* 將px值轉換為sp值,保證文字大小不變
* * @param pxvalue
* @param fontscale
* (displaymetrics類中屬性scaleddensity)
* @return
*/
public static int px2sp(context context, float pxvalue)
/**
* 將sp值轉換為px值,保證文字大小不變
* * @param spvalue
* @param fontscale
* (displaymetrics類中屬性scaleddensity)
* @return
*/
public static int sp2px(context context, float spvalue)
}
類之間的關係
類之間的關係 內容 網上關於此類的討論非常多,發現對於該問題的理解各有各的說法,而各個說法中又相去甚遠。通過瀏覽這些討論以及對 的參考,發表一下自己的看法.類間關係有很多種,在大的類別上可以分為兩種 縱向關係 橫向關係。縱向關係就是繼承關係,它的概念非常明確,也成為oo的三個重要特徵之一,這裡不過多...
和之間的關係
1.0 簡介 本 簡要的 了xml和資料庫 之間的關係,同時列出一些可以使用資料庫處理xml文件的。雖然這裡不打算詳盡地介紹這些軟體,但是筆者希望它能夠描述使用資料庫處理xml文件中的主要部分。這裡有點偏向與 關聯式資料庫,因為我的經驗如此。2.0 xml是資料庫嗎?在開始討論xml和資料庫之前,我...
類之間的關係
類之間的關係 1 種類 generalization 泛化 dependency 依賴關係 association 關聯關係 aggregation 聚合關係 composition 合成關係 2 其中aggregation 聚合關係 composition 合成關係 屬於association 關...