版權聲明:本文爲Mr.release原創文章,轉載請標明出處
封裝density工具類 DensityUtil
public class DensityUtil {
private DensityUtil()
{
/* cannot be instantiated */
throw new UnsupportedOperationException("cannot be instantiated");
}
/**
* dp轉px
*
* @param context
* @param dpVal
* @return
*/
public static int dp2px(Context context, float dpVal)
{
return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,
dpVal, context.getResources().getDisplayMetrics());
}
/**
* sp轉px
*
* @param context
* @param spVal
* @return
*/
public static int sp2px(Context context, float spVal)
{
return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP,
spVal, context.getResources().getDisplayMetrics());
}
/**
* px轉dp
*
* @param context
* @param pxVal
* @return
*/
public static float px2dp(Context context, float pxVal)
{
final float scale = context.getResources().getDisplayMetrics().density;
return (pxVal / scale);
}
/**
* px轉sp
*
* @param context
* @param pxVal
* @return
*/
public static float px2sp(Context context, float pxVal)
{
return (pxVal / context.getResources().getDisplayMetrics().scaledDensity);
}
public static int dip2px(Context context, float dip){
//px/dip= density
float density = context.getResources().getDisplayMetrics().density;
return (int) (dip*density+0.5f);
}
public static int px2dip(Context context, float px){
float density = context.getResources().getDisplayMetrics().density;
return (int) (px/density+0.5f);
}