分享一下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 edittext 设置行距不影响光标高度
  3. Android(安卓)手机上获取物理唯一标识码
  4. Android查看网页源码与开启子线程
  5. Android-->获取所有联系人以及所有的字段(联系人头像,邮箱,地址,
  6. Android中设置屏幕全屏两种方法:
  7. [置顶] android 抽屉效果,内容GridView来实现单行滑动
  8. Android常用Manager
  9. 代码:android崩溃日志收集和处理

随机推荐

  1. android studio 怎么做屏幕适配?
  2. LibGDX制作android动态壁纸
  3. 第一章 andrid visdio 安装
  4. Run Android on Your Netbook or Desktop
  5. Android(安卓)断点续传的原理剖析与实例
  6. android系统自带的主题与样式(theme and
  7. Android 之EditText InputType说明
  8. android Application Component研究之Ser
  9. Android用户界面UI组件--AdapterView及其
  10. Android 存储选项之 ContentProvider 启