哪个可以取代capturePicture功能

 蓶逺訫動_129 发布于 2023-02-06 13:00

我有个问题.目前,WebView 的capturePicture弃用.

我想问一下是否有办法替换这个功能.我的意思是它可以捕获整个webview(不仅显示视图)

谢谢

2 个回答
  • 使用draw() WebView的方法

    示例:

    ImageView imageview;
    WebView webview;
    class Background extends AsyncTask<Void, Void, Bitmap>
    {
        @Override
        protected Bitmap doInBackground(Void... params)
        {
            try
            {
                Thread.sleep(2000);
                Bitmap bitmap = Bitmap.createBitmap(webview.getWidth(), webview.getHeight(), Config.ARGB_8888);
                Canvas canvas = new Canvas(bitmap);
                webview.draw(canvas);
                return bitmap;
            }
            catch (InterruptedException e){}
            catch (Exception e){}
            return null;
        }
        @Override
        protected void onPostExecute(Bitmap result)
        {
            imageview.setImageBitmap(result);
        }
    }
    
    
    webview.setWebChromeClient(new WebChromeClient()
    {
        public void onProgressChanged(WebView view, int progress)  
        {
            if(progress==100)
                new Background().execute();
        }
    });
    

    2023-02-06 13:02 回答
  • 我终于找到了解决方案.

    一些代码

    public class WebViewActivity extends Activity {
    
        private static WebView webView;
    
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.webview);
    
            webView = (WebView) findViewById(R.id.webView1);
            webView.loadUrl("http://developer.android.com/reference/packages.html");
    //      webView.loadUrl("http://developer.android.com/training/basics/firstapp/creating-project.html");
    
            webView.setWebViewClient(new WebViewClient() {
    
                public void onPageFinished(WebView view, String url) {
                    // do your stuff here
                    webView.measure(MeasureSpec.makeMeasureSpec(
                            MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED),
                            MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
                    webView.layout(0, 0, webView.getMeasuredWidth(),
                            webView.getMeasuredHeight());
                    webView.setDrawingCacheEnabled(true);
                    webView.buildDrawingCache();
                    Bitmap bm = Bitmap.createBitmap(webView.getMeasuredWidth(),
                            webView.getMeasuredHeight(), Bitmap.Config.ARGB_8888);
    
                    Canvas bigcanvas = new Canvas(bm);
                    Paint paint = new Paint();
                    int iHeight = bm.getHeight();
                    bigcanvas.drawBitmap(bm, 0, iHeight, paint);
                    webView.draw(bigcanvas);
                    System.out.println("1111111111111111111111="
                            + bigcanvas.getWidth());
                    System.out.println("22222222222222222222222="
                            + bigcanvas.getHeight());
    
                    if (bm != null) {
                        try {
                            String path = Environment.getExternalStorageDirectory()
                                    .toString();
                            OutputStream fOut = null;
                            File file = new File(path, "/aaaa.png");
                            fOut = new FileOutputStream(file);
    
                            bm.compress(Bitmap.CompressFormat.PNG, 50, fOut);
                            fOut.flush();
                            fOut.close();
                            bm.recycle();
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                    }
                }
            });
        }
    }
    

    layout.xml

    <?xml version="1.0" encoding="utf-8"?>
    <WebView  xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/webView1"
        android:layout_
        android:layout_
    />
    

    2023-02-06 13:02 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有