1. 程式人生 > >android中常用的單位轉換

android中常用的單位轉換

public class UnitUtil {

    /**
     * 將px值轉換為dip或dp值,保證尺寸不變
     * @param context
     * @param pxValue
     * @return
     */
    public static int px2dip(Context context,float pxValue){
        final float scale=context.getResources().getDisplayMetrics()
                .density;
        return (int)(pxValue/scale+0.5f);
    }

    /**
     * 將dip或dp值轉換為px值
     * @param context
     * @param dipValue
     * @return
     */
    public static int dip2px(Context context,float dipValue){
        final float scale=context.getResources().getDisplayMetrics()
                .density;
        return (int)(dipValue*scale+0.5f);
    }

    /**
     * 將px轉換為sp值,保證字型不變
     * @param context
     * @param pxValye
     * @return
     */
    public static int px2sp(Context context,float pxValye){
        final float fontScale=context.getResources().getDisplayMetrics().scaledDensity;
        return (int)(pxValye/fontScale+0.5f);
    }

    /**
     * 將sp值轉換為px值
     * @param context
     * @param spValue
     * @return
     */
    public static int sp2px(Context context,float spValue){
        final float fontScale=context.getResources().getDisplayMetrics().scaledDensity;
        return (int)(spValue*fontScale+0.5f);
    }