Android中dip态鳖、dp、sp恶导、pt和px
概念區(qū)別:
單位 | 含義 |
---|---|
dip | device independent pixels(設(shè)備獨(dú)立像素). 不同設(shè)備有不同的顯示效果,這個(gè)和設(shè)備硬件有關(guān)浆竭,一般我們?yōu)榱酥С諻VGA、HVGA和QVGA 推薦使用這個(gè)甲锡,不依賴(lài)像素兆蕉。 |
dp | 同上,和dip一樣缤沦。 |
px | pixels(像素). 不同設(shè)備顯示效果相同虎韵,一般我們HVGA代表320x480像素。 |
sp | scaled pixels(放大像素). 主要用于字體顯示best for textsize缸废。 |
pt | point包蓝,是一個(gè)標(biāo)準(zhǔn)的長(zhǎng)度單位驶社,1pt=1/72英寸,用于印刷業(yè)测萎,非常簡(jiǎn)單易用亡电。 |
in | (英寸):長(zhǎng)度單位。 |
mm | (毫米):長(zhǎng)度單位硅瞧。 |
工具包
在 ViewSupport 支持包中可以找到該工具份乒。
單位轉(zhuǎn)換代碼:
/**
* dp、sp 轉(zhuǎn)換為 px 的工具類(lèi)
*
* @author fxsky 2012.11.12
*
*/
public class DisplayUtil {
/**
* 將px值轉(zhuǎn)換為dip或dp值腕唧,保證尺寸大小不變
*
* @param pxValue
* @param scale
* (DisplayMetrics類(lèi)中屬性density)
* @return
*/
public static int px2dip(Context context, float pxValue) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (pxValue / scale + 0.5f);
}
/**
* 將dip或dp值轉(zhuǎn)換為px值或辖,保證尺寸大小不變
*
* @param dipValue
* @param scale
* (DisplayMetrics類(lèi)中屬性density)
* @return
*/
public static int dip2px(Context context, float dipValue) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (dipValue * scale + 0.5f);
}
/**
* 將px值轉(zhuǎn)換為sp值,保證文字大小不變
*
* @param pxValue
* @param fontScale
* (DisplayMetrics類(lèi)中屬性scaledDensity)
* @return
*/
public static int px2sp(Context context, float pxValue) {
final float fontScale = context.getResources().getDisplayMetrics().scaledDensity;
return (int) (pxValue / fontScale + 0.5f);
}
/**
* 將sp值轉(zhuǎn)換為px值枣接,保證文字大小不變
*
* @param spValue
* @param fontScale
* (DisplayMetrics類(lèi)中屬性scaledDensity)
* @return
*/
public static int sp2px(Context context, float spValue) {
final float fontScale = context.getResources().getDisplayMetrics().scaledDensity;
return (int) (spValue * fontScale + 0.5f);
}
}