Рисование вне экрана WebView в растровое изображение - PullRequest
5 голосов
/ 24 июня 2011

Я пытаюсь получить изображение веб-просмотра, нарисованное за кадром для пользователя в Android, и я всегда получаю черное изображение.Это правильный размер, и все просто не

Вот код, который я использую:

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();
        }       

Спасибо, если кто-нибудь может помочь.

1 Ответ

0 голосов
/ 24 июня 2011

webview.loadUrl(theURL); запускает загрузку страницы, что может занять некоторое время.Подождите, прежде чем рисовать веб-просмотр, пока страница не загрузитсяВы можете использовать setWebViewClient(WebViewClient client), чтобы настроить объект для получения уведомления о завершении загрузки страницы.

...