#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() пустое, пока я не очищу данные приложения.