Menggambar WebView di luar layar ke bitmap

Saya mencoba mengambil gambar tampilan web yang diambil dari layar untuk pengguna di Android dan saya selalu mendapatkan gambar hitam. Ini adalah ukuran yang benar dan semuanya tidak sama

Ini kode yang saya gunakan:

String theURL = "file:///android_asset/www/pages/page2.html";
        WebView webview = new WebView(ctx);
        webview.loadUrl(theURL);
        Bitmap bm = Bitmap.createBitmap(1000, 1000, Bitmap.Config.ARGB_8888);
        Canvas c = new Canvas(bm);
        webview.draw(c);
        OutputStream stream = null;
        try {
            stream = new FileOutputStream(Environment.getExternalStorageDirectory() +"/page.jpg");
            bm.compress(CompressFormat.JPEG, 80, stream);
            if (stream != null) stream.close();              
            return new PluginResult(PluginResult.Status.OK); 
        } catch (IOException e) {
            return new PluginResult(PluginResult.Status.ERROR, e.toString());
        } finally {
            bm.recycle();
        }       

Terima kasih jika ada yang bisa membantu.


person Rich    schedule 24.06.2011    source sumber


Jawaban (1)


webview.loadUrl(theURL); memulai pemuatan halaman, itu bisa memakan waktu cukup lama. Tunggu sebelum menggambar tampilan web Anda hingga halaman dimuat. Anda dapat menggunakan setWebViewClient(WebViewClient client) untuk menyiapkan objek agar menerima pemberitahuan ketika halaman telah selesai dimuat.

person Rene    schedule 24.06.2011