从机器人的WebView拍摄照片 [英] Capture picture from android webview

查看:123
本文介绍了从机器人的WebView拍摄照片的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想保存的图片从capturePicture方法得到的的WebView 如何做到这一点?

解决方案

 网​​络=新的WebView(本);

web.setPictureListener(新PictureListener(){

    公共无效onNewPicture(web视图来看,画中画){
      如果(图片!= NULL)
      {
       尝试
       {
        BMP位= pictureDrawable2Bitmap(新PictureDrawable(图片));
        FileOutputStream中出=新的FileOutputStream(文件名);
        bmp.com preSS(Bitmap.Com pressFormat.PNG,90,出);
        out.close();
        }
        赶上(例外五)
        {
           e.printStackTrace();
        }
      }
});

web.setWebViewClient(新WebViewClient(){
    公共无效onPageFinished(的WebView的WebView,字符串URL){
        画中画= webview.capturePicture();

    }
});


web.getSettings()setJavaScriptEnabled(真)。

的setContentView(网络);
 

辅助函数

 私有静态位图pictureDrawable2Bitmap(PictureDrawable pictureDrawable){
        点阵位图= Bitmap.createBitmap(pictureDrawable.getIntrinsicWidth()
        ,pictureDrawable.getIntrinsicHeight()
        ,Config.ARGB_8888);
        帆布油画=新的Canvas(位);
        canvas.drawPicture(pictureDrawable.getPicture());
        返回的位图;
    }
 

<子>免责声明:我没有实际编撰了这本,它应该工作,虽然

I want to save the picture getting from capturePicture method in WebView how to do this?

解决方案

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);

helper function

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;
    }

Disclaimer: I haven't actually compiled this, it should work though

这篇关于从机器人的WebView拍摄照片的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆