content: package cn.addapp.pickers.util;
  
  import android.app.Activity;
  import android.content.Context;
  import android.util.DisplayMetrics;
  import android.view.Window;
  import android.view.WindowManager;
  
  /**
   * 获取屏幕宽高等信息、全屏切换、保持屏幕常亮、截屏等
   * @author matt
   * blog: addapp.cn
   */
  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);
      }
  
  }
  