скриншот из веб-просмотра

Я пытаюсь сделать скриншот содержимого моего WebView. Я создаю растровое изображение, а затем создаю холст из этого растрового изображения, затем я вызываю метод drawPage(canvas) внутри onPageFinished() (это обратный вызов из WebChromeClient), но внутри onPageFinished() webView все еще не загрузил содержимое, поэтому я вижу только сначала черная страница, а затем я вижу предыдущие страницы (потому что, когда я вызываю ее во второй раз, предыдущие страницы загружаются в webView). Как я мог справиться с этой проблемой? Я могу решить это с помощью хадлеров с некоторой задержкой, но я думаю, что должен быть лучший способ сделать это. Спасибо за помощь.


person Ving    schedule 14.08.2011    source источник


Ответы (1)


Я не думаю, что понимаю проблему, но вы спрашиваете, как вызвать событие в WebView, загружающем страницу? Не могли бы вы создать клиент WebView и переопределить onPageCompleted()?

private WebViewClient viewClient {
    @Override
    public boolean onPageFinished(WebView view, String url) {
        //here you can run your Bitmap creating code
        return true;
    }
}
YourWebView.setWebViewClient(viewClient);

Это то, что вы ищете?

person Woody    schedule 14.08.2011
comment
Если я делаю снимок экрана внутри метода onPageFinished(), я сначала получаю пустую страницу, когда я загружаю другую страницу в тот же веб-просмотр и делаю снимок экрана, я получаю экран предыдущей страницы (потому что в веб-просмотре все еще есть предыдущая страница внутри). Я ищу момент, когда страница, которую я загрузил, наконец отобразилась в веб-представлении. - person Ving; 15.08.2011
comment
Я знаю, вы упомянули, что пытаетесь сделать это с задержкой, но вы правы, это кажется неправильным. Могу я спросить, почему вы пытаетесь сделать скриншот? Возможно, это не лучший способ добиться того, что вы пытаетесь сделать. Установка для Loaded Boolean значения true в onPageFinished(), а затем проверка того, является ли Loaded истинным в методе onDraw() WebView, может что-то сделать, но это просто идея. - person Woody; 15.08.2011