本文共 3081 字,大约阅读时间需要 10 分钟。
//长截屏 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建议的方法//只显示了webview enableSlowWholeDocumentDraw(),在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(); } }
转载地址:http://jcegi.baihongyu.com/