Пустое растровое изображение при рисовании из webview

#android #canvas #webview #bitmap

Вопрос:

у меня есть объект webview в моем проекте, и я пытаюсь напечатать html-строку в веб-представлении . В первый раз после loadData() и рисования растрового изображения из него растровое изображение отображается правильно. Но после этого растровое изображение всегда будет пустым, пока я не очищу данные приложения.

Вот мой код.

 public void Print() {
    Webview mWebView = new WebView(activity);
    mWebView.setInitialScale(400);
    mWebView.getSettings().setJavaScriptEnabled(true);
    mWebView.setVerticalScrollBarEnabled(false);
    mWebView.getSettings().setDefaultTextEncodingName("utf-8");
    //mWebView.getSettings().setLoadWithOverviewMode(true);
    mWebView.getSettings().setUseWideViewPort(true);
    mWebView.addJavascriptInterface(new JavaScriptInterface(), "HTMLOUT");
    mWebView.setWebViewClient(new WebViewClient() {
        @Override
        public void onPageFinished(WebView view, String url) {
           Bitmap myBitmap = createBitmapFromView();
           print(myBitmap);
        }
    });
    mWebView.loadData(mHtmlString, "text/HTML", "UTF-8");

}


public Bitmap createBitmapFromView() {
    mView.measure(View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED),
            View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));
    mView.layout(0, 0, mView.getMeasuredWidth(), mView.getMeasuredHeight());
    Bitmap bitmap = Bitmap.createBitmap(mView.getMeasuredWidth(),
            mView.getMeasuredHeight(),
            Bitmap.Config.ARGB_8888);
    Canvas c = new Canvas(bitmap);
    mView.draw(c);
    return bitmap;
}
 

Комментарии:

1. В чем польза от этого createBitmapFromView() метода, если вы даже не используете его возвращаемый bitmap ?

2. @Darkman я отредактировал метод. Но проблема в том, что растровое изображение в createBitmapFromView() пустое, пока я не очищу данные приложения.