Android px,dp,sp的互相转化

当我们编写Android代码的过程中,有时候需要在java代码中修改一些UI的尺寸,但这是用惯了dp和sp的我们可能就会犯愁了,因为java代码中设置的所有大小单位均为px,所以今天带来了px与dp,sp的转换。

px转dp写法

public static int px2dip(Context context, float pxValue) {
    final float scale = context.getResources().getDisplayMetrics().density;
    return (int) (pxValue / scale + 0.5f);
}

dp转px写法

public static int dp2px(int dpval){
    return (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,dpval,getResources().getDisplayMetrics());
}

sp转px写法

public static int sp2px(int spVal){
    return (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP,spVal,getResources().getDisplayMetrics());
}

 

你可能感兴趣的:(Android,Studio开发实战,从零基础到APP上线)