Android开发:在WebView的HTML中使用来自资产的图像

时间:2010-09-23 15:12:29

标签: android image webview local

在我的应用程序中,我正在制作基本的HTML帮助文档。 我想在HTML img标签中使用我的应用程序徽标,但我不知道如何引用将存储在资产中的徽标。

这是可能的,如果是这样的话?

感谢您的帮助!

6 个答案:

答案 0 :(得分:51)

将您的徽标放入资产目录,例如:assets / logo.png

然后使用以下命令加载html:

webView.loadDataWithBaseURL("file:///android_asset/", htmlData, "text/html", "utf-8", null);

引用你的img:

<img src="logo.png">

答案 1 :(得分:20)

将图像存储在资源文件夹中:

enter image description here

使用file:///android_asset/

从资源中读取html中的图片

例如:

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