自定義View之尺寸的轉化

自定義View之尺寸的轉化


  在Android的佈局文件中,往往使用dp作爲控件的寬度和高度尺寸,但是在Java代碼中,文字大小或者組件尺寸的單位卻是像素px,這兩個單位有明顯的區別:dp和屏幕的密度有關,而px,sp與屏幕密度無關,所以使用時經常會涉及到兩者之間的互相轉化 :

dpi轉px

    public static int Dp2Px(Context context, int dpi) {
        return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dpi, context.getResources().getDisplayMetrics());
    }

px轉dp


    public static int Px2Dp(Context context, int px) {
        return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_PX, px, context.getResources().getDisplayMetrics());
    }

sp轉px

    public static int Sp2Px(Context context, int sp) {
        return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, sp, context.getResources().getDisplayMetrics());
    }

px轉sp

    public static int Px2Sp(Context context, int px) {
        return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_PX, px, context.getResources().getDisplayMetrics());
    }

附上工具類下載:SizeUtil.java

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