android 实现截取 内容超过屏幕大小的长图

android 实现截取 内容超过屏幕大小的长图

分析:一般的控件不能超过内容屏幕长度的截图,这时候我们就要去寻找可以显示全的控件。

当内容已经超出了手机可显示的范围时,要截取这些所有的内容,从而生成所谓的”长截图”.
没什么难点,利用了webview的特点,和scrollview 的view的绘制,生成bitmap。

scrollView截图

  /***
     * scrollView截图
     * @param scrollView
     * @return
     */
    public static Bitmap getBitmapByView(ScrollView scrollView) {
        int h = 0;
        Bitmap bitmap = null;

        for (int i = 0; i < scrollView.getChildCount(); i++) {
            h += scrollView.getChildAt(i).getHeight();
            scrollView.getChildAt(i).setBackgroundResource(R.mipmap.riding_report);
//            scrollView.getChildAt(i).setBackgroundColor(
//                    Color.parseColor("0xFFFFFFFF"));
        }

        bitmap = Bitmap.createBitmap(scrollView.getWidth(), h,
                Bitmap.Config.RGB_565);
        final Canvas canvas = new Canvas(bitmap);
        scrollView.draw(canvas);
        return bitmap;
    }

webView截图

/***
     * webView截图
     * @param webView
     * @return
     */
    private static Bitmap captureWebView(WebView webView) {
        Picture snapShot = webView.capturePicture();
        Bitmap bmp = Bitmap.createBitmap(snapShot.getWidth(),
                snapShot.getHeight(), Bitmap.Config.ARGB_8888);
        Canvas canvas = new Canvas(bmp);
        snapShot.draw(canvas);
        return bmp;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值