2011-02-15 97 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不可見,那麼它將不會被執行。第一次加載將確保所有需要的資源都被緩存,所以第二次加載將是即時的。