微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Android-Webview中的本地图片

如何解决Android-Webview中的本地图片

| 我正在尝试在Webview中显示本地图像:
 String data = \"<body>\" + \"<img src=\\\"file:///android_asset/large_image.png\\\"/></body>\";
 webview.loadData(data,\"text/html\",\"UTF-8\");
代码不显示任何内容,而是显示
 webview.loadUrl(\"file:///android_asset/large_image.jpg\");
这个可以工作,但是我需要一个复杂的网页,而不仅仅是一张图片。 有任何想法吗 ?     

解决方法

将HTML文件加载到Webview中,然后将图像放在资产文件夹中,并使用HTML读取图像文件。
<html>
  <table>
    <tr>
      <td>
        <img src=\"abc.gif\" width=\"50px\" alt=\"Hello\">
      </td>
    </tr>
  </table>
</html>
现在在Webview中加载该HTML文件
webview.loadUrl(\"file:///android_asset/abc.html\");  
    ,您也可以尝试
String data = \"<body>\" + \"<img src=\\\"large_image.png\\\"/></body>\";

webView.loadDataWithBaseURL(\"file:///android_asset/\",data,\"text/html\",\"utf-8\",null);
    ,一种方便的方法(通常被遗忘)是在HTML内容中使用base64嵌入式图像。这也将在移动Webkit浏览器(IOS,Android ..)上工作。 使用此方法的要点是,您可以将图像嵌入HTML内容,而不必处理从Webview到受限文件系统的图像链接。
  <img src=\"data:image/jpg;base64,xxxxxxxxxxxxxxxxxxxxxxxxxxxx\"/>

  xxxxx = base64 encoded string of images bytes
如果要从文件系统提供(嵌入式base64)图像数据,则可以例如: 1)在Android中使用ContentProvider-将提供base64格式的图像字符串。
<img src=\"content://..............\"/>
2)或者,您也可以使用JSOUP或类似的DOM解析器对HTML进行预处理(在将其设置为webview之前),并使用正确的base64编码图像来调整图像src。 此方法的缺点是将图像转换为base64字符串时的开销,当然也包括将较大的HTML数据转换为Webview时的开销。     ,使用此方法。
mview.loadDataWithBaseURL(folder.getAbsolutePath(),content,\"windows-1252\",\"\");
folder.getAbsolutePath()
可以是
\"file:///android_asset\"
,也可以是
\"/\"
    ,我认为您的代码中缺少
\\
   String data = \"<body>\" + \"<img src=\\\\\"file:///android_asset/large_image.png\\\"/></body>\";      
    ,
 webView.loadDataWithBaseURL(\"file:///android_asset/\",sourse,\"UTF-8\",null);
    ,对我而言,最好的方法是用MS Word中的所有文本和图像创建
.html
文件,并将该文件另存为
.html
文件,并将
.html
文件和相应的附件文件夹复制到Assets文件夹中,并提供.html文件的地址在资产文件夹中to17ѭ... 这是您需要做的...
WebView webview = (WebView) findViewById(R.id.webView1);

webview.loadUrl(\"file:///android_asset/learning1/learning1.htm\");
    ,Zain的解决方案为我工作。我忘记添加包含HTML文件以及CSS和图像等其他子文件夹的文件夹www。
webView.loadDataWithBaseURL(\"file:///android_asset/www/\",null);
..     ,最简单直接的方法是使用like20ѭ之类的html编辑器创建HTML文件,或者使用您喜欢的任何东西。 将您的html文件放在资产文件夹中,然后致电
webView.loadUrl(filename)
。资产文件夹还应包含您在html文件中引用的所有图片。 预先以某种方式在html文件中更正图像的路径,即仅归档纯文件名。传递给loadUrl的文件名必须以“ 22”为前缀。 如果未加载图片或文件,请检查空白,连字符和其他奇怪内容的文件名,然后更改文件名。     ,我知道问题的答案正确,但是我将以有效的方式实施。   步骤1在素材资源文件夹中制作一个HTML文件 例如:-imageLaod.html 注意:在HTML文件中,我们通过指定style =“ \” width:100%\“实现了全屏图像
<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"
                \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">

<html xmlns=\"http://www.w3.org/1999/xhtml\">
        <head>
            <meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\"/>
       <title>Load Image</title>
          <style type=\"text/css\">
                h3{
                color:blue;
                }
        </style>   
    </head>
  <body>
        <h3>This image loaded from app asset folder.</h3>
        <img src=\"yourimage.png\" style=\"width:100%\" alt=\"companylogo\"/>
  </body>
</html>
  步骤2将您的图片放在素材资源文件夹中。 (例如:yourimage.png) 步骤3在Java文件中放置以下代码。
    String folderPath = \"file:android_asset/\";
    String fileName = \"loadImage.html\";
    String file = folderPath + fileName;
    WebView webView = findViewById(R.id.webview)
    webView.getSettings().setBuiltInZoomControls(true);
    webView.getSettings().setDisplayZoomControls(false);
    webView.loadUrl(file);
完成了。您可以看到具有WebView放大和缩小功能的全屏图像。 希望能帮助到你。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。