捕获webview时,不显示视图的内容是白色的

Posted

技术标签:

【中文标题】捕获webview时,不显示视图的内容是白色的【英文标题】:When capturing webview, content without displaying view is white 【发布时间】:2016-07-11 11:13:34 【问题描述】:

我有一个关于 Webview 的问题。

这是我的源头和结果。

private void saveDocumentImage() 

    WebView wv = arrWebView.get(0);

    wv.measure(MeasureSpec.makeMeasureSpec(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED), MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
    int y=wv.getHeight();

    Bitmap captureView = Bitmap.createBitmap(wv.getMeasuredWidth(), wv.getMeasuredHeight(), Bitmap.Config.ARGB_8888);
    wv.layout(0, 0, wv.getMeasuredWidth(), wv.getMeasuredHeight());
    Canvas screenShotCanvas = new Canvas(captureView);
    wv.draw(screenShotCanvas);


    if (captureView != null) 
        try 
            String path = Environment.getExternalStorageDirectory().toString();
            OutputStream fOut = null;
            File file = new File(path, "temp");

            if (!file.exists())
                file.mkdirs();

            fOut = new FileOutputStream(path + "/temp/test_0.jpg");
            captureView.compress(Bitmap.CompressFormat.JPEG, 100, fOut);
            wv.setDrawingCacheEnabled(false);

         catch (FileNotFoundException e) 
            e.printStackTrace();
        
    
    wv.destroyDrawingCache();
    captureView.recycle();
    captureView=null;

这里和我的一样。 :https://***.com/questions/37023619/capturing-bitmap-android-chromium-webview-returns-content-as-white

【问题讨论】:

【参考方案1】:

您无法截取网页视图和表面视图的屏幕截图,因为它们的内容已加载到它们的支架中,而支架不是视图。如果你找到方法然后分享它。一旦我对它进行了一些研究,发现this 但我还没有测试它。如果它对您有用,请尝试一下,然后接受我的回答:D。祝你好运

【讨论】:

感谢您的意图。我现在解决了。大声笑我需要选择'webview.enableSlowWholeDocumentDraw();'我从android开发人员那里找到了它。我遇到了一个新问题。大声笑你能帮我吗?我想裁剪整个视图,但它没有用......这是我添加它用于裁剪的来源。 'bitmap = Bitmap.createBitmap(bitmap, 0,2000, wv.getMeasuredWidth(), 4000);'我希望位图出现在 2000 到 4000 之间(x 合作。),但它出现在 0 到 4000.... createBitmap(位图源, int x, int y, int width, int height) createBitmap(bitmap, 0,2000, wv.getMeasuredWidth(), 4000);最后两个参数将决定新创建的位图的高度和宽度你可以从***.com/questions/9747295/…coderzheaven.com/2011/03/15/crop-an-image-in-android得到你的帮助 尤其是这个coderzheaven.com/2011/03/15/crop-an-image-in-android 感谢 Adeel Turk 的链接。我解决了它,但为什么它在 2 天前运行不正常......然后我昨天尝试它运行良好,即使我没有修复任何东西......大声笑但你的链接对我真的很有帮助。 c.f.>, webview.enableSlowWholeDocumentDraw(); 我的荣幸阿德里安。 :D 外星人可能知道这一点。明天我也面临同样的问题我的代码运行良好但现在相同的代码相同的设备但 Gurr#%$@@@ :@ :/.

以上是关于捕获webview时,不显示视图的内容是白色的的主要内容,如果未能解决你的问题,请参考以下文章

在初始化程序中加载 webview 内容

Android将触摸事件传递给WebView的内部内容

带有rgba的不透明白色背景在白色背景上显示灰色?

如何更改默认的白色背景 WebView Flex

Android API 21 中的 Webview 为空白/白色

搜索视图关闭图标显示为禁用而不是白色