package com.example.administrator.ximengjianyu.utils; import android.app.Activity; import android.content.Context; import android.support.annotation.NonNull; import android.util.DisplayMetrics; /** * Created by xukai on 2017/2/13. */ public class ScreenUtils { /** * 根据手机的分辨率从 dip 的单位 转成为 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); } /** * 该方法用来获取屏幕的宽度 */ public int getScreenWidth(Activity activity){ DisplayMetrics metric = getDisplayMetrics(activity); int width = metric.widthPixels; return width; } /** * 该方法用来获取屏幕的高度 */ public int getScreenHeight(Activity activity){ DisplayMetrics metric = getDisplayMetrics(activity); int heightPixels = metric.heightPixels; return heightPixels; } /** * 用来获取屏幕的屏幕密度 * @return */ public float getScreenDensity(Activity activity){ DisplayMetrics metrics = getDisplayMetrics(activity); float density = metrics.density; // 屏幕密度(0.75 / 1.0 / 1.5) return density; } /** * 用来获取屏幕的密度DPI */ public int getScreenDensityPDI(Activity activity){ DisplayMetrics metrics = getDisplayMetrics(activity); int densityDpi = metrics.densityDpi; // 屏幕密度DPI(120 / 160 / 240) return densityDpi; } @NonNull private DisplayMetrics getDisplayMetrics(Activity activity) { DisplayMetrics metric = new DisplayMetrics(); activity.getWindowManager().getDefaultDisplay().getMetrics(metric); return metric; } }