您的位置:首页 > 移动开发 > Android开发

Android单位转换(px、sp、dp之间的转换)

2017-07-20 11:25 387 查看
import android.content.Context;
import android.util.TypedValue;

/**
* Created by du on 17/7/20.
*/
public class DisplayMetricsUtil {

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

/**
* dp 转为 px.
*/
public static int dip2px(Context context, float dpValue) {
float scale = context.getResources().getDisplayMetrics().density;
return (int) (dpValue * scale + 0.5f);
}

/**
* px 转为 sp.
*/
public static int px2sp(Context context, float pxValue) {
float scale = context.getResources().getDisplayMetrics().scaledDensity;
return (int) (pxValue / scale + 0.5f);
}

/**
* sp 转为 px.
*/
public static int sp2px(Context context, float spValue) {
float scale = context.getResources().getDisplayMetrics().scaledDensity;
return (int) (spValue * scale + 0.5f);
}

/**
* dp 转为 px.
*/
public static int dip2px_2(Context context, float dpValue) {
return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dpValue,
context.getResources().getDisplayMetrics());
}

/**
* sp 转为 px.
*/
public static int sp2px_2(Context context, float spValue) {
return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, spValue,
context.getResources().getDisplayMetrics());
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: