本文实例讲述了AndroID开发实现webvIEw中img标签加载本地图片的方法。分享给大家供大家参考,具体如下:
在网上查了很多教程,感觉很麻烦,各种方法,最后实践很简单,主要是两步:
WebSettings webSettings=webVIEw.getSettings();//允许webvIEw对文件的 *** 作webSettings.setAllowUniversalAccessFromfileURLs(true);webSettings.setAllowfileAccess(true);webSettings.setAllowfileAccessFromfileURLs(true);
其次是路径的设置
String path= "file://"+Environment.getExternalStorageDirectory()+ file.separator+"123.jpg";
一定是file:///开头,注意是三个斜杠
下面是结果:
执行代码之前
执行代码之后
HTML代码
<!DOCTYPE HTML><HTML lang="en"><head> <Meta charset="UTF-8"> <Meta name="vIEwport" content="wIDth=device-wIDth,initial-scale=1,maximum-scale=1"> <Title>Title</Title></head><body><img ID="img" alt="上海鲜花港 - 郁金香" /><script>function aa(path){alert(path); var img=document.getElementByID("img"); img.src=path;}</script></body></HTML>
AndroID代码
package com.example.a5.myapplication;@R_301_5565@ androID.os.Environment;@R_301_5565@ androID.support.v7.app.AlertDialog;@R_301_5565@ androID.support.v7.app.AppCompatActivity;@R_301_5565@ androID.os.Bundle;@R_301_5565@ androID.webkit.WebChromeClIEnt;@R_301_5565@ androID.webkit.WebSettings;@R_301_5565@ androID.webkit.WebVIEw;@R_301_5565@ java.io.file;public class MainActivity extends AppCompatActivity { private WebVIEw webVIEw; @OverrIDe protected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.activity_main); webVIEw= (WebVIEw) findVIEwByID(R.ID.webVIEw); WebSettings webSettings=webVIEw.getSettings(); //允许webvIEw对文件的 *** 作 webSettings.setAllowUniversalAccessFromfileURLs(true); webSettings.setAllowfileAccess(true); webSettings.setAllowfileAccessFromfileURLs(true); //用于Js调用AndroID webSettings.setJavaScriptEnabled(true); //设置编码方式 webSettings.setDefaultTextEnCodingname("utf-8"); webVIEw.setWebChromeClIEnt(new chromClIEnt()); //访问AndroID assets文件夹内的 String url="file:///androID_asset/test.HTML"; //访问网页HTML// String url="http://192.168.1.121:8080/JsandroID/index.HTML"; runWebVIEw(url); } private class chromClIEnt extends WebChromeClIEnt{ @OverrIDe public voID onProgressChanged(WebVIEw vIEw,int newProgress) { if(newProgress==100){ //页面加载完成执行的 *** 作 String path= "file://"+Environment.getExternalStorageDirectory()+ file.separator+"123.jpg"; String action="JavaScript:aa('"+path+"')"; new AlertDialog.Builder(MainActivity.this) .setMessage(action) .show(); runWebVIEw(action); } super.onProgressChanged(vIEw,newProgress); } } private voID runWebVIEw(final String url){ runOnUiThread(new Runnable() { @OverrIDe public voID run() { webVIEw.loadUrl(url); } }); }}
更多关于AndroID相关内容感兴趣的读者可查看本站专题:《Android视图View技巧总结》、《Android编程之activity *** 作技巧总结》、《Android布局layout技巧总结》、《Android开发入门与进阶教程》、《Android资源 *** 作技巧汇总》及《Android控件用法总结》
希望本文所述对大家AndroID程序设计有所帮助。
总结以上是内存溢出为你收集整理的Android开发实现webview中img标签加载本地图片的方法全部内容,希望文章能够帮你解决Android开发实现webview中img标签加载本地图片的方法所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)