package com.team.zhuoke.utils;
import android.content.Context;
import android.util.DisplayMetrics;
/**
* @author: 范建海
* @createTime: 2016/10/25 11:05
* @className: DensityUtil
* @description: px.dp.sp单位转化工具类
* @changed by:
*/
public class DensityUtil {
/**
* 将px值转化为dip值
*
* @param context 上下文
* @param pxValue px的值
* @return dip的值
*/
public static int px2dip(Context context, float pxValue) {
float scale = context.getResources().getDisplayMetrics().density;
return (int) (pxValue / scale + 0.5f);
}
/**
* 将dip的值转化为px值
*
* @param context 上下文
* @param dipValue dip的值
* @return px的值
*/
public static int dip2px(Context context, float dipValue) {
float scale = context.getResources().getDisplayMetrics().density;
return (int) (dipValue * scale + 0.5f);
}
/**
* 将px的值转化为sp的值
*
* @param context 上下文
* @param pxValue px的值
* @return sp的值
*/
public static int px2sp(Context context, float pxValue) {
float fontScale = context.getResources().getDisplayMetrics().scaledDensity;
return (int) (pxValue / fontScale + 0.5f);
}
/**
* 将sp的值转化为px
*
* @param context 上下文
* @param spValue sp的值
* @return px的值
*/
public static int sp2px(Context context, float spValue) {
float fontScale = context.getResources().getDisplayMetrics().scaledDensity;
return (int) (spValue * fontScale + 0.5f);
}
/**
* 获取屏幕像素密度等级
*
* @param context 上下文
* @return 返回屏幕密度等级(参考适配文件原理图)
*/
public static float getDensity(Context context) {
DisplayMetrics dm = context.getResources().getDisplayMetrics();
return dm.density;
}
/**
* 获取逻辑像素密度
* @param context 上下文
* @return (测试通过)返回逻辑像素密度(参考适配文件原理图)
*/
public static float getDensityDpi(Context context) {
DisplayMetrics dm = context.getResources().getDisplayMetrics();
return dm.densityDpi;
}
/**
* 获取scaledDensity
*
* @param context 上下文
* @return scaledDensity
*/
public static float getScaledDensity(Context context) {
DisplayMetrics dm = context.getResources().getDisplayMetrics();
return dm.scaledDensity;
}
}