use*_*713 11 url android load webview
在我的项目中,我有一个文件:
"MyProject/assets/folder1/image1.jpg"
"MyProject/assets/folder1/index.html".
Run Code Online (Sandbox Code Playgroud)
在webView中我需要打开index.html(带图片).
我尝试这段代码:
String baseUrl = "file:///android_asset/folder1/";
webView.loadDataWithBaseURL(baseUrl, readFileAsString("index.html") , mimeType, "UTF-8", null);
Run Code Online (Sandbox Code Playgroud)
但图像无法加载.
如果我将图像放到" assets "目录(MyProject/assets/)并使baseUrl = "file:///android_asset"图像正确加载;
如何从root资产目录加载图像,而不是从assets/folder1?
Jan*_*joy 14
试试这样
WebView webview = (WebView)this.findViewById(R.id.webview);
String html = "<html><head><title>TITLE!!!</title></head>";
html += "<body><h1>Image?</h1><img src=\"icon.png\" /></body></html>";
webview.loadDataWithBaseURL("file:///android_res/drawable/", html, "text/html", "UTF-8", null);
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请尝试此链接
我认为您必须将基础设置为资源并将子文件夹添加到您的图像src中,如下所示:
webView.loadDataWithBaseURL("file:///android_asset/", readAssetFileAsString("folder1/index.html"), "text/html", "UTF-8", null);
HTML:
<img src="folder1/image1.jpg">
这适用于Android 5.1
private String readAssetFileAsString(String sourceHtmlLocation)
{
InputStream is;
try
{
is = getContext().getAssets().open(sourceHtmlLocation);
int size = is.available();
byte[] buffer = new byte[size];
is.read(buffer);
is.close();
return new String(buffer, "UTF-8");
}
catch(IOException e)
{
e.printStackTrace();
}
return "";
}
Run Code Online (Sandbox Code Playgroud)
Mur*_*san -15
你给了互联网许可吗?
<uses-permission android:name="android.permission.INTERNET" />
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
41942 次 |
| 最近记录: |