px
1px代表屏幕上一個物理的像素點;同樣100px的圖片,在不同手機上顯示的實際大小可能不同,一般不建議使用
dip = dp
device independent pixels(設備獨立像素)與“像素密度有關”,標準是160dip.即1dp對應1個pixel,,屏幕密度越大,1dp對應 的像素點越多,屏幕圖像越細膩。
sp:
scaled pixels(放大像素). 主要用於字體顯示best for textsize。
px與dp和sp之間的轉換方法,常用語Android 自定義控件中畫圖。
這裏寫代碼片
//px轉換爲dp
public int dp2px(int dpVal){
return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,
dpVal, getResources().getDisplayMetrics());
//TypedValue.COMPLEX_UNIT_DIP表示想要得到的單位,dpVal是想要得到單位的數值
//getResources()這個方法就可以獲取存在系統的資源
//getDisplayMetrics()
}
//px轉換爲sp
public int sp2px(int spVal){
return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP,
spVal, getResources().getDisplayMetrics());
}