屏幕相关的辅助类

来源:互联网 发布:做淘宝新手怎么找货源 编辑:程序博客网 时间:2024/05/18 00:04
import android.app.Activity;  import android.content.Context;  import android.graphics.Bitmap;  import android.graphics.Rect;  import android.util.DisplayMetrics;  import android.view.View;  import android.view.WindowManager;    /**  * 获得屏幕相关的辅助类  *   *   *   */  public class ScreenUtils  {      private ScreenUtils()      {          /* cannot be instantiated */          throw new UnsupportedOperationException("cannot be instantiated");      }        /**      * 获得屏幕高度      *       * @param context      * @return      */      public static int getScreenWidth(Context context)      {          WindowManager wm = (WindowManager) context                  .getSystemService(Context.WINDOW_SERVICE);          DisplayMetrics outMetrics = new DisplayMetrics();          wm.getDefaultDisplay().getMetrics(outMetrics);          return outMetrics.widthPixels;      }        /**      * 获得屏幕宽度      *       * @param context      * @return      */      public static int getScreenHeight(Context context)      {          WindowManager wm = (WindowManager) context                  .getSystemService(Context.WINDOW_SERVICE);          DisplayMetrics outMetrics = new DisplayMetrics();          wm.getDefaultDisplay().getMetrics(outMetrics);          return outMetrics.heightPixels;      }        /**      * 获得状态栏的高度      *       * @param context      * @return      */      public static int getStatusHeight(Context context)      {            int statusHeight = -1;          try          {              Class<?> clazz = Class.forName("com.android.internal.R$dimen");              Object object = clazz.newInstance();              int height = Integer.parseInt(clazz.getField("status_bar_height")                      .get(object).toString());              statusHeight = context.getResources().getDimensionPixelSize(height);          } catch (Exception e)          {              e.printStackTrace();          }          return statusHeight;      }        /**      * 获取当前屏幕截图,包含状态栏      *       * @param activity      * @return      */      public static Bitmap snapShotWithStatusBar(Activity activity)      {          View view = activity.getWindow().getDecorView();          view.setDrawingCacheEnabled(true);          view.buildDrawingCache();          Bitmap bmp = view.getDrawingCache();          int width = getScreenWidth(activity);          int height = getScreenHeight(activity);          Bitmap bp = null;          bp = Bitmap.createBitmap(bmp, 0, 0, width, height);          view.destroyDrawingCache();          return bp;        }        /**      * 获取当前屏幕截图,不包含状态栏      *       * @param activity      * @return      */      public static Bitmap snapShotWithoutStatusBar(Activity activity)      {          View view = activity.getWindow().getDecorView();          view.setDrawingCacheEnabled(true);          view.buildDrawingCache();          Bitmap bmp = view.getDrawingCache();          Rect frame = new Rect();          activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);          int statusBarHeight = frame.top;            int width = getScreenWidth(activity);          int height = getScreenHeight(activity);          Bitmap bp = null;          bp = Bitmap.createBitmap(bmp, 0, statusBarHeight, width, height                  - statusBarHeight);          view.destroyDrawingCache();          return bp;        }    }  
0 0
原创粉丝点击