Android 截取指定View为图片

这里写图片描述
这个功能是为了截取指定的View为图片,然后分享到微信以及朋友圈使用的!

如图所示,我需要截取整个LinearLayout的内容,多余的内容全部都要去掉!

//诺,主要观察这两个方法

    /**
     * 压缩图片
     *
     * @param bgimage
     * @param newWidth
     * @param newHeight
     * @return
     */
    public static Bitmap zoomImage(Bitmap bgimage, double newWidth, double newHeight) {
        // 获取这个图片的宽和高
        float width = bgimage.getWidth();
        float height = bgimage.getHeight();
        // 创建操作图片用的matrix对象
        Matrix matrix = new Matrix();
        // 计算宽高缩放率
        float scaleWidth = ((float) newWidth) / width;
        float scaleHeight = ((float) newHeight) / height;
        // 缩放图片动作
        //matrix.postScale(scaleWidth, scaleHeight);//TODO 因为宽高不确定的因素,所以不缩放
        Bitmap bitmap = Bitmap.createBitmap(bgimage, 0, 0, (int) width,
                (int) height, matrix, true);
        return bitmap;
    }

 /**
     * 截取指定View为图片
     *
     * @param view
     * @return
     * @throws Throwable
     */
    public static Bitmap captureView(View view) throws Throwable {
        Bitmap bm = Bitmap.createBitmap(view.getWidth(), view.getHeight(), Bitmap.Config.ARGB_8888);
        view.draw(new Canvas(bm));
        return bm;
    }

其实很简单,就是首先获取View的宽高,然后设置bitmap格式,最后生成一张Bitmmap对象,然后在绘制出来,就这么个道理!


//这个是使用逻辑
 Bitmap bitmap = null;
                try {
                    bitmap = captureView(mShareBackgroundSign);
                } catch (Throwable throwable) {
                    throwable.printStackTrace();
                }
                UMImage umImage = null;
                umImage = new UMImage(getActivity(), zoomImage(bitmap, 720, 1280));
                new ShareAction(getActivity()).setPlatform(SHARE_MEDIA.WEIXIN)
                        .withText(content)
                        .withMedia(umImage)
                        .share();
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值