android - 从android webview捕获图片

标签 android

我想把从WebView中的capturePicture方法获取的图片保存下来怎么办?

最佳答案

web = new WebView(this);

web.setPictureListener(new PictureListener(){

    public void onNewPicture(WebView view, Picture picture) {
      if(picture != null)
      {
       try
       {
        Bitmap bmp = pictureDrawable2Bitmap(new PictureDrawable(picture)); 
        FileOutputStream out = new FileOutputStream(filename);
        bmp.compress(Bitmap.CompressFormat.PNG, 90, out); 
        out.close();
        }
        catch(Exception e)
        {
           e.printStackTrace();
        }
      }
});

web.setWebViewClient(new WebViewClient() {
    public void onPageFinished(WebView webview, String url) {
        Picture picture = webview.capturePicture();

    }
});


web.getSettings().setJavaScriptEnabled(true);

setContentView(web);

辅助函数

private static Bitmap pictureDrawable2Bitmap(PictureDrawable pictureDrawable){
        Bitmap bitmap = Bitmap.createBitmap(pictureDrawable.getIntrinsicWidth()
        ,pictureDrawable.getIntrinsicHeight()
        , Config.ARGB_8888);
        Canvas canvas = new Canvas(bitmap);
        canvas.drawPicture(pictureDrawable.getPicture());
        return bitmap;
    }

免责声明:我实际上并没有编译这个,但它应该可以工作

关于android - 从android webview捕获图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7702565/

相关文章:

android - 在 Android 5.0 上获取 NuPlayer 设置

某些 XML 布局未显示 Android Studio 3.1 XML 预览

android - 两个从属HttpUrlConnection与android中的AsyncTask

android - Android HTTPS 页面上的 POST 在回答时返回空页面

java - 从 ArrayList<Object> 转换为 ArrayList<Custom> 类会引发错误,而将 Object 转换为 Custom 则不会

android - 删除Android顶部和底部导航栏

android - 从移动应用程序执行 Google Apps 脚本函数

android - 如何在 android 应用程序中使用不受支持的语言?

android - 如果服务停止,后台线程会发生什么?

android - 如何减少进度对话框的高度和宽度?