簡體   English   中英

從Webview創建位圖,屏幕內容為Android

[英]Creating Bitmap from Webview with content offscreen Android

我有一個webview,我想把它變成我的應用程序的另一部分的位圖。

目前,我可以獲得將在屏幕上呈現的webview部分的位圖,但是我的位圖需要包含所有頁面的內容。

將webview的layoutParams設置為更大的尺寸會導致原始圖像加載到更大的畫布上。

這是我目前的實施:

FrameLayout.LayoutParams tempParams= new FrameLayout.LayoutParams(2000,4000);
_webView.setLayoutParams(tempParams);
_webView.layout(0,0,2000,4000);
int width = _webView.getWidth();
int height = _webView.getHeight();

_webView.postDelayed(new Runnable() {
    @Override
    public void run() {
        Bitmap bitmap = Bitmap.createBitmap(_webView.getWidth(), _webView.getHeight(), Bitmap.Config.ARGB_8888);
        Canvas canvas = new Canvas(bitmap);
        _webView.draw(canvas);

    }
},100);

我已經按照以下教程,他們似乎沒有解決我的問題。

將Android webview呈現為位圖,html5 javascript,回調問題

在Android中從HTML生成位圖

我正在考慮使用PictureListener和capturePicture(),但這些已被棄用。

您可以將WebView高度設置為wrap_contents ,它將自己調整為內容高度。

您仍然可以使用PictureListener.onNewPicture()來接收WebView繪制的信號。 它比使用onPageFinished()更好,因為后者僅表示WebView已收到所有頁面內容。 PictureListener.onNewPicture()的當前狀態意味着它無法從中獲取圖片,您需要使用WebView.draw()就像您已經在做的那樣。

另外,請注意,如果您的應用程序的目標是L API級別或更高級別,則需要在創建任何WebView之前調用WebView.enableSlowWholeDocumentDraw() ,以便將WebView的全部內容繪制到畫布上,請參閱此內容

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM