国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

android webView截圖的4種方法

2019-10-22 18:11:56
字體:
來源:轉載
供稿:網友

android 在webView里面截圖大概有四種方式,具體內容如下

1.獲取到DecorView然后將DecorView轉換成bitmap然后寫入到文件里面.

View view = getWindow().getDecorView();  Bitmap bitmap = Bitmap.createBitmap(view.getWidth(), view.getHeight(), Bitmap.Config.ARGB_8888);   Canvas canvas = new Canvas(bitmap);    view.draw(canvas);    Log.d(TAG,"bitmap--"+bitmap);    try {      String fileName = Environment.getExternalStorageDirectory().getPath()+"/webview_jietu.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(); }}

2.使用webViewpicture來實現該功能.(該方法被廢棄了因此不建議使用)

 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);   picture.draw(canvas);    try {     String fileName = Environment.getExternalStorageDirectory().getPath()+"/webview_jietu.jpg";     FileOutputStream fos = new FileOutputStream(fileName);     //壓縮bitmap到輸出流中     bitmap.compress(Bitmap.CompressFormat.JPEG, 70, fos);     fos.close();     Toast.makeText(WebviewFromCapture.this, "截屏成功", Toast.LENGTH_LONG).show();     bitmap.recycle();     } catch (Exception e) {   Log.e(TAG, e.getMessage());  }}

3.使用webViewDraw來實現.(該方法被廢棄了因此不建議使用)

float scale = webView.getScale();  int webViewHeight = (int) (webView.getContentHeight()*scale+0.5);   Bitmap bitmap = Bitmap.createBitmap(webView.getWidth(),webViewHeight, Bitmap.Config.ARGB_8888);   Canvas canvas = new Canvas(bitmap);   webView.draw(canvas);    try {     String fileName = Environment.getExternalStorageDirectory().getPath()+"/webview_jietu.jpg";     FileOutputStream fos = new FileOutputStream(fileName);     //壓縮bitmap到輸出流中      bitmap.compress(Bitmap.CompressFormat.JPEG, 70, fos);      fos.close();      Toast.makeText(WebviewFromDraw.this, "截屏成功", Toast.LENGTH_LONG).show();      bitmap.recycle();      } catch (Exception e) {  Log.e(TAG, e.getMessage());}

4.使用webViewDrawCache來實現(建議使用).

Bitmap bitmap = webView.getDrawingCache();  try {    String fileName = Environment.getExternalStorageDirectory().getPath() + "/webview_jietu.jpg";    FileOutputStream fos = new FileOutputStream(fileName);    //壓縮bitmap到輸出流中    bitmap.compress(Bitmap.CompressFormat.JPEG, 70, fos);    bitmap.recycle();    fos.close();   Toast.makeText(WebviewFromDrawCache.this, "截屏成功", Toast.LENGTH_LONG).show();} catch (Exception e) {      Log.e(TAG, e.getMessage());    } finally {      bitmap.recycle();}

注意:

在android5.0及以上版本使用webView進行截長圖時,默認是截取可是區域內的內容.因此需要在支撐窗體內容之前加上如下方法.

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {  WebView.enableSlowWholeDocumentDraw();   } setContentView(R.layout.activity_webview);

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 龙州县| 秭归县| 静海县| 白朗县| 东兴市| 临沧市| 玉溪市| 三门峡市| 上杭县| 理塘县| 巴彦淖尔市| 嘉义市| 如皋市| 宣化县| 左云县| 浑源县| 江津市| 仙桃市| 芜湖市| 广灵县| 柞水县| 奉新县| 成安县| 彭泽县| 崇信县| 怀安县| 衡水市| 保康县| 太湖县| 闸北区| 弥勒县| 遂平县| 靖宇县| 龙游县| 无锡市| 韶山市| 遂宁市| 高邑县| 分宜县| 泰兴市| 吉木萨尔县|