package com.martin.simpledevelop.utils.density;
import android.content.Context;
import android.util.TypedValue;
import com.martin.simpledevelop.utils.log.SaLogUtils;
/**
* @Description 单位转换 工具类<br>
* 内部已经封装了打印功能,只需要把DEBUG参数改为true即可<br>
* 如果需要更换tag可以直接更改,默认为MARTIN
* @File SaDensityUtils.java
* @Package com.martin.utils.density
* @Date 2015年6月15日下午6:09:06
* @Author Donghongyu 1358506549@qq.com
* @Version v1.0.0
*/
public class SaDensityUtils {
/**
* Log 输出标签
*/
public static String TAG = SaDensityUtils.class.getName();
/**
* dp转px
*
* @param context
* @param dpVal
* @return
*/
public static int dp2px(Context context, float dpVal) {
int result = (int) TypedValue.applyDimension(
TypedValue.COMPLEX_UNIT_DIP, dpVal, context.getResources()
.getDisplayMetrics());
SaLogUtils.i(TAG, "dp-->px:" + result);
return result;
}
/**
* sp转px
*
* @param context
* @param spVal
* @return
*/
public static int sp2px(Context context, float spVal) {
int result = (int) TypedValue.applyDimension(
TypedValue.COMPLEX_UNIT_SP, spVal, context.getResources()
.getDisplayMetrics());
SaLogUtils.i(TAG, "sp-->px:" + result);
return result;
}
/**
* px转dp
*
* @param context
* @param pxVal
* @return
*/
public static int px2dp(Context context, float pxVal) {
final float scale = context.getResources().getDisplayMetrics().density;
int result = (int) (pxVal / scale);
SaLogUtils.i(TAG, "px-->dp:" + result);
return result;
}
/**
* px转sp
*
* @param context
* @param pxVal
* @return
*/
public static float px2sp(Context context, float pxVal) {
int result = (int) (pxVal / context.getResources().getDisplayMetrics().scaledDensity);
SaLogUtils.i(TAG, "px-->sp:" + result);
return result;
}
}