分享一下Android中常用的一些辅助方法:

获取屏幕高度:

 /**     * 获得屏幕高度     * @param context     * @return     * by Hankkin at:2015-10-07 21:15:59     */    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     * by Hankkin at:2015-10-07 21:16:13     */    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     * by Hankkin at:2015-10-07 21:16:29     */    public static float getScreenDensity(Context context) {        return context.getResources().getDisplayMetrics().density;    }

dip转px:

/**     * dip转px像素     * @param context     * @param px     * @return     * by Hankkin at:2015-10-07 21:16:43     */    public static int dip2px(Context context, float px) {        final float scale = getScreenDensity(context);        return (int) (px * scale + 0.5);    }

获取状态栏高度:

/**     * 获得状态栏的高度     * @param context     * @return     * by Hankkin at:2015-10-07 21:16:43     */    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     * by Hankkin at:2015-10-07 21:16:43     */    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     * by Hankkin at:2015-10-07 21:16:43     */    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;    }



更多相关文章

  1. 获取Android状态栏的高度
  2. android 屏幕判断
  3. android中statusbar高度的问题
  4. Android获取屏幕分辨率及DisplayMetrics简介
  5. Android 手机屏幕适配解决办法
  6. Android在任何地方模拟点击屏幕

随机推荐

  1. Android电源管理,低电量报警
  2. android 图片的压缩
  3. Android(安卓)简单数据库(增删改查)
  4. android 注册、登录实现
  5. android进度条对话框
  6. android 命令珍藏
  7. Android(安卓)UI控件详解-Button(按钮)点
  8. 遍历android根目录的简单资源查看器
  9. android 工具类2
  10. Android(安卓)JSON 解析