Как поделиться кешем изображений с WebView - PullRequest
0 голосов
/ 26 июня 2011

Я сам реализую модуль ImageCache, он может автоматически загружать изображения в html.

но я не знаю, как поделиться с ImageCache WebView. Если изображение кэшируется при просмотре в Интернете, оно не будет загружено снова.

Я реализую ContentProvider, если изображение было кэшировано, читаем из кэша, иначе скачиваем из интернета. Но изображения обычно появляются вместе, и веб-представление долго остается пустым

Ответы [ 2 ]

0 голосов
/ 26 июня 2011

Рассматривали ли вы создание собственного ContentProvider для доступа к вашему кешу?Это не так страшно, как кажется, вам нужно только расширить ContentProvider и подключить его к файлу манифеста.

Здесь - это сообщение в блоге, описывающее его - я реализовал его в приложении, которое делаетинтенсивное использование WebViews: Источник на Github .

Этот вид ContentProvider может загружать все локальные файлы в WebView - вам нужно будет адаптировать эту идею для:

  • Загрузите все файлы на SD-карту или во внутреннее хранилище перед отображениемв WebView и просто загрузите локальный HTML-файл с помощью loadUrl () или
  • Храните кэшированные изображения только локально и заменяйте все вхождения их исходных расположений изображений в HTML-коде WebView их кэшированным местоположением.(используя вышеописанное расширение ContentProvider).Вы можете манипулировать исходным кодом HTML, «внедряя» javascript в WebView с помощью loadUrl () - с некоторыми точными регулярными выражениями или согласованными классами CSS в представлении это должно быть выполнимо.
0 голосов
/ 26 июня 2011

Попробуйте что-то вроде webview.loadDataWithBaseURL("file:///android_asset/",data, "text/html", "utf8","");

. Возможно, этот сайт будет вам полезен: Графические данные

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...