0
WebViewからスクリーンショットを作成する必要があります。または、「HTMLをビットマップに変換する」と言うことができます。AndroidがWebViewから画像をキャプチャできない、view.postDelayが実行されていない
私はこの作業に問題があります。 view.postDelayd(新しいRunnableを(){...私はRunnableを、Bitmap.createBitmap(...)例外を与えるを使用しない場合は、私のキャプチャ画像は
private void Main {
WebView webView = new WebView(this.context); //init WebView
saveHtmlImage(webView); //running method for capture picture
}
private void saveHtmlImage(final WebView webView){
webView.setWebViewClient(new WebViewClient() {
public void onPageFinished(WebView view, String url) {
view.postDelayed(new Runnable() { //trouble here
@Override
public void run() {
Picture picture = webView.capturePicture();
Bitmap b = Bitmap.createBitmap(picture.getWidth(),
picture.getHeight(), Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(b);
picture.draw(c);
}
}, 100);
}
});
//set HTML code for WebView
webView.loadDataWithBaseURL(null, "<TABLE border=\"1\"\n" +
" summary=\"This table gives some statistics about fruit\n" +
" flies: average height and weight, and percentage\n" +
" with red eyes (for both males and females).\">\n" +
"<CAPTION><EM>A test table with merged cells</EM></CAPTION>\n" +
"<TR><TH rowspan=\"2\"><TH colspan=\"2\">Average\n" +
" <TH rowspan=\"2\">Red<BR>eyes\n" +
"<TR><TH>height<TH>weight\n" +
"<TR><TH>Males<TD>1.9<TD>0.003<TD>40%\n" +
"<TR><TH>Females<TD>1.7<TD>0.002<TD>43%\n" +
"</TABLE>", "text/html", "UTF-8", null);
}
で新しいスレッドを作成しないでください - java.lang.IllegalArgumentExceptionが:私は
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
intead
view.postDelayd(new Runnable() {
を使用していた場合、幅と高さが> 0
でなければなりません
方法
webView.capturePicture();
復帰空のスクリーンショットが、正しい幅と高さ
で私を助けてください。
私が間違っているとか、またはHTMLコードをビットマップイメージに変換できるコードの別の例を教えてください。
ご返信ありがとうございます。
Activityでwebviewを使用していないため、全画面表示できません。これだけのinitです。 'code' WebView webView = new WebView(context); 'code' – Yuriy
どこからこのコードをやっていますか?あなたのアプリケーションの中に正しいですか?あなたのアプリケーションにいるなら、コンテキストがあります。あなたがスクリーンに要素を追加することをコントロールしているなら、それらを確実にスクリーンショットすることができます。 – Sam