在我的应用程序中,我正在制作基本的HTML帮助文档。 我想在HTML img标签中使用我的应用程序徽标,但我不知道如何引用将存储在资产中的徽标。
这是可能的,如果是这样的话?
感谢您的帮助!
答案 0 :(得分:51)
将您的徽标放入资产目录,例如:assets / logo.png
然后使用以下命令加载html:
webView.loadDataWithBaseURL("file:///android_asset/", htmlData, "text/html", "utf-8", null);
引用你的img:
<img src="logo.png">
答案 1 :(得分:20)
将图像存储在资源文件夹中:
使用file:///android_asset/
例如:
String sHtmlTemplate = "<html><head></head><body><img src=\"file:///android_asset/img/mybadge.png\"></body></html>";
在WebView中加载:
webView.loadDataWithBaseURL(null, sHtmlTemplate, "text/html", "utf-8",null);
答案 2 :(得分:6)
将它们转储到assets文件夹中,然后输入html
<img src="filename.png">
简单就是那个
答案 3 :(得分:5)
您可以使用以下网址语法引用资产:
file:///android_asset/YourAssetFilename
答案 4 :(得分:2)
将您的徽标放入资产目录 示例:assets / logo.png
然后
String imgData="<img src=home.png>";
webView.loadDataWithBaseURL("file:///android_asset/", imgData, "text/html", "utf-8", null);
答案 5 :(得分:0)
考虑到我们在your_image.png
中放置了图片assets/imgs
。
在早期版本的android中,您可以直接访问以下图像。
webView.loadData("<img src='file:///android_asset/imgs/your_image.png'/>",
"text/html", "UTF-8");
但是由于增加了安全性考虑,因此无法直接访问最新版本的文件。对于最新版本,我们需要使用WebViewAssetLoader
。请参考以下代码。
Helper类可使用WebView类内的http(s):// URL加载本地文件,包括应用程序的静态资产和资源。希望使用类似于Web的URL而不是“ file://”来加载本地文件,因为它与Same-Origin策略兼容。
final WebViewAssetLoader assetLoader = new WebViewAssetLoader.Builder()
.addPathHandler("/assets/", new WebViewAssetLoader.AssetsPathHandler(this))
.build();
webView.setWebViewClient(new WebViewClient() {
@Override
public WebResourceResponse shouldInterceptRequest(WebView view,
WebResourceRequest request) {
return assetLoader.shouldInterceptRequest(request.getUrl());
}
});
webView.loadData("<img src='https://appassets.androidplatform.net/assets/imgs/your_image.png'/>",
"text/html", "UTF-8");
有关更多信息,请参阅android dev门户链接 https://developer.android.com/reference/androidx/webkit/WebViewAssetLoader https://developer.android.com/jetpack/androidx/releases/webkit?fireglass_rsn=true