2012-09-14 47 views
0

我想從網頁獲取圖像並將其保存到本地存儲中。我可以找到來自HTML的所有圖像URL,從服務器加載這些圖像並保存它們。但我不想第二次訪問服務器,獲取已在webview中的相同信息。所以我想知道如何從webview加載圖像?從wevbiew獲取已加載的圖像

+0

你有沒有想過要實現一個緩存系統? – yugidroid

+0

在這種情況下,我想實現某種緩存。 – Hayk

回答

1

您可以通過幾個步驟設置WebView緩存。看看下面。

WebView webView =(WebView)findViewById(R.id.your_webView_Id);

String cacheDir = getDir(「your_WV_cache_dir」,Context.MODE_PRIVATE).getAbsolutePath(); webView.getSettings()。setAppCacheMaxSize(1024 * 1024 * 1); // 1 MB緩存限制大小> webView.getSettings()。setAppCachePath(cacheDir); webView.getSettings()。setAppCacheEnabled(true); webView.getSettings()。setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); //這個常數對你很重要。如果已經下載了一次,則可以從緩存中加載daa。

您可以看看WebView.WebSettings官方文檔中上述常數的其他可能值。

讓我知道它是否有效。

+0

你好yugidroid。感謝您的快速反應,併爲遲到感到抱歉))這是我得到的。我在'cacheDir'目錄中只找到一個'applicationCache.db'文件。它有10個表格:'CacheGroups,sqlite_sequence,Caches,CacheWhitelistURLs,CacheAllowsAllNetworkRequests,FallbackURLs,CacheEntries,CacheResources,CacheResourceData,android_metadata'。除最後一個表格外,所有表格都是空的,只包含一個原始格式:類似於'en-EN'。我在「WebView」中打開了一些頁面後,我做了所有這些。所以很奇怪,我在緩存目錄中找不到任何信息。 – Hayk

+0

非常歡迎您。 您是否已經嘗試查看是否有相同的內容(據推測在緩存中)可用於您的應用程序,但沒有任何類型的Internet連接? – yugidroid

+0

是的,它似乎緩存了我需要的所有信息('HTML',圖像,'JS'文件,'CSS'文件)。我想手動創建這種緩存...通常這解決了我的問題,所以我接受這個答案。但是現在我還有一個緩存失效的問題:我想讓緩存只針對特定的URL而不是整個緩存。 – Hayk