Android:从隐藏的网络视图中获取屏幕截图,每重新绘制一个新页面

Android:从隐藏的网络视图中获取屏幕截图,每重新绘制一个新页面,android,webview,Android,Webview,Android编程新手。我需要开发一个应用程序获取网页的屏幕截图,每次有什么变化,在它里面。我的第一种方法是扩展WebView类并重写onDraw()调用。这使我能够通过获取重画请求和拍摄新屏幕截图来了解网页何时更改。问题是,很明显,只有当WebView控件当前在视图上可见时才会调用onDraw,但在我的情况下,我需要将其隐藏起来,因为我只想在后台使用webkit引擎,并在界面中仅显示当前页面的屏幕截图。如果我一直隐藏WebView,则不会传递重画事件。所以我的问题是,是否有办法满足我的需求?(

Android编程新手。我需要开发一个应用程序获取网页的屏幕截图,每次有什么变化,在它里面。我的第一种方法是扩展WebView类并重写onDraw()调用。这使我能够通过获取重画请求和拍摄新屏幕截图来了解网页何时更改。问题是,很明显,只有当WebView控件当前在视图上可见时才会调用onDraw,但在我的情况下,我需要将其隐藏起来,因为我只想在后台使用webkit引擎,并在界面中仅显示当前页面的屏幕截图。如果我一直隐藏WebView,则不会传递重画事件。所以我的问题是,是否有办法满足我的需求?(希望能很好地解释我的问题)。请注意,“保持隐藏”的意思是我没有将WebView控件放在布局界面中,而是在应用程序启动时使用类似“new WebView(this)”的东西单独创建


谢谢

只需像这些家伙那样渲染位图即可:


覆盖
onPageFinished
并在其中绘制视图。

您好,谢谢您的回复。当引擎完成加载HTML代码时,只调用onPageFinished一次,但这并不意味着所有页面项都已完成加载,因为某些图像可能仍然需要加载和显示。除此之外,我还需要知道,每当页面出现“动态”更新并需要重新绘制时(例如,某些图像被页面内部的javascript代码更改)。当您设置
WebViewClient
时,还需要覆盖
onLoadResource
,您就知道我要去哪里了?。听什么都行。虽然您不知道它是否已经下载,但您可以等待安全超时。顺便说一句,您可以为HttpClient设置默认的RequestFactory,并通过自己处理inputstream来确定某个特定url是否已完成下载。您好,以我的javascript代码为例,将一些预加载的图像更改到页面中,你的方式对我不起作用。您的建议很好,但仅适用于“静态”页面。通常javascript代码预加载他们需要的所有图像,并在页面内“动态”更改。由于图像是预加载的,通过监视http请求,您无法看到任何更改…您完全可以。WebView必须从运行时获取连接,它不会从中打开连接。如果不是从httpClient,可能使用URLConnection,但它会。