package cn.qqtheme.framework.util;
import android.app.Activity;
import android.content.Context;
import android.util.DisplayMetrics;
import android.view.Window;
import android.view.WindowManager;
/**
* 获取屏幕宽高等信息、全屏切换、保持屏幕常亮、截屏等
*
* @author liyujiang[QQ:1032694760]
* @since 2015/11/26
*/
public final class ScreenUtils {
private static boolean isFullScreen = false;
private static DisplayMetrics dm = null;
public static DisplayMetrics displayMetrics(Context context) {
if (null != dm) {
return dm;
}
DisplayMetrics dm = new DisplayMetrics();
WindowManager windowManager = (WindowManager) context
.getSystemService(Context.WINDOW_SERVICE);
windowManager.getDefaultDisplay().getMetrics(dm);
LogUtils.verbose("screen width=" + dm.widthPixels + "px, screen height=" + dm.heightPixels
+ "px, densityDpi=" + dm.densityDpi + ", density=" + dm.density);
return dm;
}
public static int widthPixels(Context context) {
return displayMetrics(context).widthPixels;
}
public static int heightPixels(Context context) {
return displayMetrics(context).heightPixels;
}
public static float density(Context context) {
return displayMetrics(context).density;
}
public static int densityDpi(Context context) {
return displayMetrics(context).densityDpi;
}
public static boolean isFullScreen() {
return isFullScreen;
}
public static void toggleFullScreen(Activity activity) {
Window window = activity.getWindow();
int flagFullscreen = WindowManager.LayoutParams.FLAG_FULLSCREEN;
if (isFullScreen) {
window.clearFlags(flagFullscreen);
isFullScreen = false;
} else {
window.setFlags(flagFullscreen, flagFullscreen);
isFullScreen = true;
}
}
/**
* 保持屏幕常亮
*/
public static void keepBright(Activity activity) {
//需在setContentView前调用
int keepScreenOn = WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON;
activity.getWindow().setFlags(keepScreenOn, keepScreenOn);
}
}