Я бросаю HTML в webview для рендеринга. В HTML я должен загрузить изображение, в котором я имею /res/drawable
.
Я имею /res/drawable/my_image.png
и код, такой как это:
final WebView browser = (WebView) findViewById(R.id.my_webview);
String html = new MyHelper(myObject).getHtml();
browser.loadDataWithBaseURL("", html, "text/html", "UTF-8", "");
Где строка html
имеет что-то как:
<html><head>
<h1>Here is the image</h1>
<img src="my_image.png" />
</head><html>
Вопрос, что это должно отобразить src
припишите для обращения к изображению в /res/drawable
?
Признаюсь, я мало знаю о WebViews / HTML, но похоже, что вы берете более сложную маршрут для этого. Есть простой способ загрузить файл HTML; поместите его в папку с ресурсами, и тогда на него можно будет ссылаться следующим образом.
WebView webView = new WebView(this);
webView.loadUrl("file:///android_asset/index.html");
setContentView(webView);
Очевидно, что ваш макет более сложен, поскольку у вас больше, чем просто WebView, поэтому вы не можете напрямую использовать setContentView ()
, но это основная идея. Затем для ссылки на изображение в этом HTML-файле я использовал тег
, например:
<img src="res/drawable/icon.png"/>
Это работает для вас?
У меня точно такая же проблема, но ни размещение файла изображения в res/drawable
(который мне сначала пришлось создать, просто у меня уже были drawable-hdpi, -ldpi и -mdpi), ни использование file:///asset/
URL не помогло.
Вот что я делаю:
Activity:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mWebView = (WebView) findViewById(R.id.webview);
mWebView.getSettings().setJavaScriptEnabled(true);
String summary = "<html><body><div style=\"background:red; width:300px; height:50px;\"></div><img src=\"res/drawable/banner300.jpg\"/></body></html>";
mWebView.loadData(summary, "text/html", "utf-8");
Затем в res/drawable
я поместил banner300.jpg - но он не отображается. Есть идеи?