2011-02-15 57 views
1

对于我的Android应用程序,我想在后台加载完整的网页,然后在准备就绪时以全屏视图显示它。换句话说,我想显示一个完全加载的网页,而不需要用户坐在“加载”屏幕上。此外,我想等待任意时间,而不是只要加载它就显示页面。Android:预加载网页,然后显示全屏

看起来,全屏Web视图的唯一显示方式是使用新的Activity,但是如何将网页的内容传递给新的Activity?我试图在隐藏的web视图上调用WebView.savePicture(),然后将结果传递给一个新的Activity,但它似乎不会保存图片,除非它实际上可见。

想法?

回答

1

看起来,显示全屏网页视图的唯一方法是使用新的活动,但是如何将网页内容传递给新活动?

做在一个活动:

第1步:让你的WebViewandroid:visibility="gone",并有其他的东西(无论你想在你的“任意时刻”显示用户)可见。

步骤2:让WebView“加载完整的网页”,但不可见。步骤#3:当页面被加载,或者当你的“任意时间”已经过去时,让你所显示的任何东西都能看到GONE,并且WebView返回到VISIBLE

+0

感谢您的反馈意见。总的来说,这是一个很好的方法,但我遇到了一些问题。 1)我所在的Activity实际上是一个Tab视图,所以我无法全屏显示页面。它只会填充标签视图。 2)如果它在那里,这不会让我隐藏标题栏。现在我正在考虑抓取HTML,解析它并在本地下载所有引用的资产,然后启动一个新的活动,并编辑HTML以引用本地资产。在iOS中展示全屏弹窗视图要容易得多:( – Bryan 2011-02-15 19:32:27

2

您可以创建一个webview,使其不可见或使其成为ViewFlipper的一个视图,并在其中加载所需的URL。为您的webview实现WebViewClient的onPageFinished。在收到回调(onPageFinished)后,等待一段时间(如果你愿意的话),让你的webview可见或翻转并重新加载URL。重新加载是非常重要的,因为页面可能会有一些javascript用于重复某个网页的某个部分,并且如果webview不可见,那么它将不会被执行。第一次加载将确保所有需要的资源都被缓存,所以第二次加载将是即时的。