如何从android中的webview中的内部存储加载图像?

时间:2015-12-23 10:06:37

标签: android html image webview offlineapps

我们希望在webview中显示带有文本,图像等内容的html页面离线(没有互联网连接)。我们只能显示文字。对于图像,我们将图像存储在图像URL的内部存储(SD卡)上,并用图像内部存储(SD卡)路径替换该图像URL(服务器URL)。

但是,这些图像没有在webview中显示。

例如, 下面是html中的img标签..

<img alt="img" class="center_top_img" src="http://test.com/uploads/section/images/523.jpg" /> 

我们正在将图片内部存储(SD卡)路径替换为上面的图片网址(服务器网址),如

<img alt="img" class="center_top_img" src=\"file:///data/data/com.app.test/files/523.jpg\" /> 

4 个答案:

答案 0 :(得分:1)

无论图像在哪里,只要获取其绝对路径并预先添加“ file://”即可。

File file = ...
String imagePath + "file://" + file.getAbsolutePath();
String html = "...<img src=\""+ imagePath + "\">...";

答案 1 :(得分:0)

试试这个

mWebView = (WebView) findViewById(R.id.webview);
mWebView.getSettings().setAllowFileAccess(true);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setBuiltInZoomControls(true);
String base = Environment.getExternalStorageDirectory().getAbsolutePath().toString();
String imagePath = "file://"+ base + "/test.jpg";
String html = "<html><head></head><body><img src=\""+ imagePath + "\"></body></html>";
mWebView.loadDataWithBaseURL("", html, "text/html","utf-8", "");  

答案 2 :(得分:0)

请记住,您的图片位于app目录中。 你可以用这个:

<img src="file:///data/data/com.yourapp/files/yourimage.jpg" />

答案 3 :(得分:0)

在我的情况下,我希望图像位于“内部存储”中,而不是如描述中所述的sd卡(还应从对getExternalStorageDirectory的使用中推论出-您的问题标题却提到了“内部存储”。原因,找到正确的路径:

//image paths; 'images' folder was earlier created by getFilesDir
String basePATH = "";
String imagePSPPath = "";
String imagePSP = "passportImage.jpeg"; //can be generated dynamically if needed
File images = new File(getApplicationContext().getFilesDir(), "images");
if(file.exists()) {
    //fine, it exists, build right strings
    basePATH = images.toString();
    imagePSPPath = basePATH +"/"+ imagePSP;
    Log.i("XPATH", imagePSPPath);   //loged for ease of copying
}else {
   //error, path not found
    Toast.makeText(YourActivity.this, "Sorry, path not found: ", Toast.LENGTH_LONG).show();
}

接下来,使用此路径,但还要确保它具有3个正斜杠,而不是2个。对我来说,我只是从LOG.i复制了XPATH地址,并将其直接粘贴到我的HTML页面中:

<img src="file:///"+imagePSPPath +" alt="PSP Photo">