Android截屏分享(使用系统分享)

简单的系统分享功能,传入对应Activity,分享截屏图片

  public static void share(Activity activity){
        Intent intent = new Intent(Intent.ACTION_SEND);
        intent.setType("image/*");
        Uri u = Uri.parse(MediaStore.Images.Media.insertImage(activity.getContentResolver(), takeScreenShot(activity), null,null));//将截图bitmap存系统相册
        intent.putExtra(Intent.EXTRA_STREAM, u);
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        activity.startActivity(Intent.createChooser(intent, ""));
    }
    /**
     * Activity截屏
     * */
    public static Bitmap takeScreenShot(Activity pActivity) {
        View view = pActivity.getWindow().getDecorView();
        // 设置是否可以进行绘图缓存
        view.setDrawingCacheEnabled(true);
        // 如果绘图缓存无法,强制构建绘图缓存
        view.buildDrawingCache();
        // 返回这个缓存视图
        Bitmap bitmap = view.getDrawingCache();

        // 获取状态栏高度
        Rect frame = new Rect();
        // 测量屏幕宽和高
        view.getWindowVisibleDisplayFrame(frame);
        int stautsHeight = frame.top;
        Point point = new Point();
        pActivity.getWindowManager().getDefaultDisplay().getSize(point);
        int width = point.x ;
        int height = point.y;
        // 根据坐标点和需要的宽和高创建bitmap
        bitmap = Bitmap.createBitmap(bitmap, 0, stautsHeight, width, height - stautsHeight);
        return bitmap;
    }

你可能感兴趣的:(功能模块)