Ich muss hier etwas falsch machen mit dem Speichern des Bildes oder etwas, als wenn ich es als PNG speichern, ist es ein leeres weißes Bild. Wenn ich es als JPEG speichere, ist es ein leeres schwarzes Bild.Android Webview, versucht, als Bilddatei speichern scheint nur ein leeres Bild zu speichern
Die Webansicht wird nach ca. 1 Sekunde in meine Anwendung geladen.
.....
webView = (WebView)findViewById(R.id.webview_1);
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
//Bitmap b = Bitmap.createBitmap(view.getWidth(), view.getHeight(), Bitmap.Config.ARGB_8888);
Bitmap b = getBitmapFromWebView(webView);
Canvas c = new Canvas(b);
view.draw(c);
try {
FileOutputStream fos = openFileOutput("test.png", Context.MODE_APPEND);
//fos = new FileOutputStream("/sdcard/" + "page.jpg");
if (fos != null) {
b.compress(Bitmap.CompressFormat.PNG, 90, fos);
fos.close();
}
}
catch(Exception e) {
System.out.println("-----error--"+e);
}
}
});
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setLoadWithOverviewMode(true);
webSettings.setUseWideViewPort(true);
webView.addJavascriptInterface(new WebAppInterface(this), "Android");
webView.loadUrl("file:///android_asset/World_display.html");
....
public Bitmap getBitmapFromWebView(WebView wv) {
webView.setDrawingCacheEnabled(true);
webView.buildDrawingCache(true);
Bitmap bitmap = Bitmap.createBitmap(wv.getDrawingCache());
webView.setDrawingCacheEnabled(false);
return bitmap;
}