dp sp px之間的區別與轉換

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());

    }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章