package com.luck.picture.lib.tools;
|
|
import android.app.Activity;
|
import android.content.Context;
|
import android.util.DisplayMetrics;
|
|
import java.lang.reflect.Field;
|
|
/**
|
* @author:luck
|
* @date:2017-5-30 19:30
|
* @describe:ScreenUtils
|
*/
|
public class ScreenUtils {
|
/**
|
* dp2px
|
*/
|
public static int dip2px(Context context, float dpValue) {
|
final float scale = context.getResources().getDisplayMetrics().density;
|
return (int) (dpValue * scale + 0.5f);
|
}
|
|
public static int getScreenWidth(Context context) {
|
DisplayMetrics localDisplayMetrics = new DisplayMetrics();
|
((Activity) context).getWindowManager().getDefaultDisplay().getMetrics(localDisplayMetrics);
|
return localDisplayMetrics.widthPixels;
|
}
|
|
public static int getScreenHeight(Context context) {
|
DisplayMetrics localDisplayMetrics = new DisplayMetrics();
|
((Activity) context).getWindowManager().getDefaultDisplay().getMetrics(localDisplayMetrics);
|
return localDisplayMetrics.heightPixels - getStatusBarHeight(context);
|
}
|
|
public static int getStatusBarHeight(Context context) {
|
int statusBarHeight = 0;
|
try {
|
Class<?> c = Class.forName("com.android.internal.R$dimen");
|
Object o = c.newInstance();
|
Field field = c.getField("status_bar_height");
|
int x = (Integer) field.get(o);
|
statusBarHeight = context.getApplicationContext().getResources().getDimensionPixelSize(x);
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return statusBarHeight == 0 ? dip2px(context, 25) : statusBarHeight;
|
}
|
}
|