web-dev-qa-db-fra.com

Chargement d'une ressource Android dans une WebView

J'ai une application Android qui affiche une bande dessinée. Pour utiliser les commandes de zoom intégrées, je charge les images dans un WebView = comme ça:

webView.loadUrl("file:///Android_asset/page1.jpg");

Cela fonctionne très bien, cependant, puisque les images sont dans le dossier des ressources, elles ne sont pas compressées, ce qui rend mon . Apk énorme. Je me demandais comment référencer les fichiers de ressources (à partir du res/drawable dossier) avec un chemin de fichier comme je l'ai fait ci-dessus avec les actifs. Est-ce que quelqu'un sait à quoi ressemblerait ce chemin? J'ai essayé des choses comme "file:///res/drawable/pagetitle.jpg" sans succès. Merci pour l'aide.


Mise à jour:

Je l'ai trouvé "file:///Android_res/drawable/page1.jpg" était le chemin que je cherchais.

44
Amplify91

de ce site

En utilisant l'ID de ressource, le format est:

"Android.resource://[package]/[res id]"

Uri path = Uri.parse("Android.resource://com.androidbook.samplevideo/" + R.raw.myvideo);

ou, en utilisant le sous-répertoire des ressources (type) et le nom de la ressource (nom de fichier sans extension), le format est:

"Android.resource://[package]/[res type]/[res name]"

Uri path = Uri.parse("Android.resource://com.androidbook.samplevideo/raw/myvideo");
20
runor49

J'ai également dû utiliser loadDataWithBaseURL au lieu de simplement loadData pour obtenir le file:///Android_res/drawable/page1.jpg travailler.

6
Sean Moore