安卓工具类1——像素PX和dp互相转换的方法(获取手机屏幕尺寸PX)

124 阅读1分钟
package com.lab.web.view;

import android.content.Context;

/**
 * Created by YTF on 2017/8/9.
 */

public class DensityUtil {
    /**
     * 根据手机的分辨率从 dp 的单位 转成为 px(像素)
     *
     * @param context 上下文
     * @param dpValue dp值
     * @return px值
     */
    public static int dip2px(Context context, float dpValue) {
        final float scale = context.getResources().getDisplayMetrics().density;
        return (int) (dpValue * scale + 0.5f);
    }

    /**
     *
     * 根据手机的分辨率从 px(像素) 的单位 转成为 dp
     *
     */
    public static int px2dip(Context context, float pxValue) {
        final float scale = context.getResources().getDisplayMetrics().density;
        return (int) (pxValue / scale + 0.5f);
    }
}

附:获取手机屏幕参数的方法

在acvitity中获取:
this.getWindowManager().getDefaultDisplay().getWidth();//获取手机屏幕宽度px
在自定义view中或者工具类中:
  //获取手机屏幕宽度px
    WindowManager wm = (WindowManager) mContext
                    .getSystemService(Context.WINDOW_SERVICE);
            DisplayMetrics outMetrics = new DisplayMetrics();
            wm.getDefaultDisplay().getMetrics(outMetrics);
            int withScreen=outMetrics.widthPixels;