Изображения в подпапке ресурсов Android не отображаются в WebView

Я видел много подобных вопросов здесь, но ни один из них, похоже, не является моей проблемой.

Я загружаю локальный html-файл из подпапки папки моих ресурсов в WebView. Файл находится в assets/myfolder/myfolder2/test.html.

Также в assets/myfolder/myfolder2/ у меня есть image.jpg. Полный путь: assets/myfolder/myfolder2/image.jpg

Я загружаю html так:

// html contains the string content of the test.html file
webView.loadDataWithBaseURL("file:///android_asset/myfolder/myfolder2/", html,
                                   "text/html", "utf-8", "about:blank");

В строке html у меня есть следующий тег:

<img src="image.jpg" />

Изображение не отображается. Я также пытался указать полный файл:/// URL-адрес изображения, но безуспешно. Если я изменю его на ссылку на изображение где-нибудь в Интернете, все будет работать нормально. Почему он не может найти мой локальный образ?


person mattgmg1990    schedule 24.07.2013    source источник
comment
ваша папка с активами помечена как активы?   -  person Giant    schedule 24.07.2013
comment
@SatineKainne Да, это называется активы/   -  person mattgmg1990    schedule 24.07.2013
comment
Что отображается на экране??   -  person Brijesh Thakur    schedule 24.07.2013
comment
Ничего, html не содержит никакого другого значимого контента, кроме моего тега ‹img›, и изображения не загружаются.   -  person mattgmg1990    schedule 24.07.2013


Ответы (2)


После долгих разочарований я наконец обнаружил, что не могу просмотреть это конкретное изображение ни на одном устройстве Android, даже в стандартном браузере, несмотря на то, что я думал, что это обычное изображение JPG.

Я до сих пор не уверен, что с ним не так, но когда я открыл его в своем фоторедакторе и снова сохранил в обычном кодировании JPG, все заработало. Это включает в себя, когда я ссылаюсь на него из папки ресурсов в моем WebView.

person mattgmg1990    schedule 27.07.2013
comment
Вы наконец узнали, в чем проблема? - person olidem; 15.01.2018
comment
Нет, не думаю, что когда-либо делал. - person mattgmg1990; 16.01.2018
comment
Хорошо, я обнаружил свою проблему: я скопировал папку в Finder и вставил ее в Android Studio. Каким-то образом некоторые вставленные изображения имели размер 0 байт! Я не знаю почему, но он создал около 50% всех файлов изображений как пустые файлы (с правильным именем). - person olidem; 19.01.2018

Чтобы загрузить html из папки ресурсов, вы должны использовать webview.loadUrl().

  • Я создал две подпапки внутри папки с ресурсами с именами «folder1» и «folder2».

  • Поместили изображение в folder2.

  • Поместите файл HTML с тегом изображения "<img src="ic_launcher.png">"

и наконец использовал webView.loadUrl("file:///android_asset/folder1/folder2/test.html");

Я вижу изображение, загруженное в webview.

person Brijesh Thakur    schedule 24.07.2013
comment
Большое спасибо за Вашу помощь. К сожалению, кажется, что моя проблема была совершенно не связана с этим, хотя я не осознавал этого в то время. У изображения должно быть что-то другое в кодировке, поэтому оно не будет отображаться ни на одном устройстве Android, несмотря на то, что оно без проблем находится в папке активов. - person mattgmg1990; 27.07.2013