android 获取屏幕大小和屏幕截图

来源:互联网 发布:诺基亚5500软件 编辑:程序博客网 时间:2024/06/05 01:54
/** * 获得屏幕高度 * * @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
原创粉丝点击