package com.fredric.util;
import android.content.Context;
import android.util.TypedValue;
/*-
* 像素转换相关
* COMPLEX_UNIT_PX:像素
* COMPLEX_UNIT_DIP:设备独立像素(与硬件设备无关)
* COMPLEX_UNIT_PT:标准长度单位1/72英寸
* COMPLEX_UNIT_IN:英寸
* COMPLEX_UNIT_MM:毫米
* Google建议:
* 像素类的采用DIP,字体大小类的采用PX
*/
public class DensityUtils {
/*-
* dp2px
* 像素密度 = 分辨率/尺寸
* 将dip转换为pixel,应用场景如:
* setPadding 方法的单位是pixel,需要做转换
*/
public static int dp2px(Context context, float dp){
return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,
dp, context.getResources().getDisplayMetrics());
}
/*-
* px2dp
*/
public static float px2dp(Context context, float pxVal){
//获取屏幕密度
final float scale = context.getResources().getDisplayMetrics().density;
return (pxVal / scale);
}
}