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

来源:互联网 发布:c语言中制表符怎么用? 编辑:程序博客网 时间:2024/05/21 11:34
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());    }}

原创粉丝点击