android_WebView截图

来源:互联网 发布:广州淘宝拍摄基地在哪 编辑:程序博客网 时间:2024/05/24 06:15
//长截屏5.0以上就行不通//获取Picture对象Picture picture = wv_capture.capturePicture();//得到图片的宽和高(没有reflect图片内容)int width = picture.getWidth();int height = picture.getHeight();if (width > 0 && height > 0) {    //创建位图    Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);    Canvas canvas = new Canvas(bitmap);    //绘制(会调用native方法,完成图形绘制)    picture.draw(canvas);}//5.0建议的方法//只显示了webviewenableSlowWholeDocumentDraw(),在setContentView前去调用//获取webview缩放率float scale = wv_capture.getScale();//得到缩放后webview内容的高度int webViewHeight = (int) (wv_capture.getContentHeight()*scale);Bitmap bitmap = Bitmap.createBitmap(wv_capture.getWidth(),webViewHeight, Bitmap.Config.ARGB_8888);Canvas canvas = new Canvas(bitmap);//绘制wv_capture.draw(canvas); //截图下来,然后保存     public void go() {        Picture picture = webView.capturePicture();        int width = picture.getWidth();        int height = picture.getHeight();        if (width > 0 && height > 0) {            //创建位图            Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);            Canvas canvas = new Canvas(bitmap);            //绘制(会调用native方法,完成图形绘制)            picture.draw(canvas);            iv.setImageBitmap(bitmap);            Toast.makeText(this, "截屏成功" + width + "   " + height + "  " + canvas.getHeight(), Toast.LENGTH_SHORT).show();            try {                String fileName = Environment.getExternalStorageDirectory().getPath() + "/webview_capture4.jpg";                FileOutputStream fos = new FileOutputStream(fileName);                //压缩bitmap到输出流中                bit = Bitmap.createBitmap(bitmap);                bit.compress(Bitmap.CompressFormat.JPEG, 70, fos);                fos.close();                Toast.makeText(this, "截屏成功", Toast.LENGTH_SHORT).show();            } catch (Exception e) {            } finally {                if (bit != null) {                    bit.recycle();                }            }        }    }//在Activity销毁时进行回收,所以开启缓存的话会有性能开销webView.setDrawingCacheEnabled(true);...Bitmap bitmap = webView.getDrawingCache();//多次调用会崩溃,sopublic void go2() {    Bitmap bitmap;    if (webView.isDrawingCacheEnabled()) {        webView.buildDrawingCache();        bitmap = webView.getDrawingCache();    } else {        webView.setDrawingCacheEnabled(true);        bitmap = webView.getDrawingCache();    }    Bitmap bit = Bitmap.createBitmap(bitmap);    iv.setImageBitmap(bit);    webView.destroyDrawingCache();}//整个窗口的截图View view = context.getWindow().getDecorView();Bitmap bitmap = Bitmap.createBitmap(view.getWidth(), view.getHeight(), Bitmap.Config.ARGB_8888);Canvas canvas = new Canvas(bitmap);view.draw(canvas);//保存 saveFiletry { String fileName = Environment.getExternalStorageDirectory().getPath()+"/webview_capture4.jpg"; FileOutputStream fos = new FileOutputStream(fileName); //压缩bitmap到输出流中 bitmap.compress(Bitmap.CompressFormat.JPEG, 70, fos); fos.close(); Toast.makeText(WebviewFromGetDecorView.this, "截屏成功", Toast.LENGTH_LONG).show(); } catch (Exception e) { Log.e(TAG, e.getMessage()); }finally { if(bitmap!=null) { bitmap.recycle(); } }
                                             
1 0
原创粉丝点击