Android开发实现webview中img标签加载本地图片的方法
程序员文章站
2023-11-23 20:56:04
本文实例讲述了android开发实现webview中img标签加载本地图片的方法。分享给大家供大家参考,具体如下:
在网上查了很多教程,感觉很麻烦,各种方法,最后实践很简...
本文实例讲述了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="上海鲜花港 - 郁金香" style="width: 100%;height: 100%"/> <script> function aa(path){ alert(path); var img=document.getelementbyid("img"); img.src=path; } </script> </body> </html>
android代码
package com.example.a5.myapplication; import android.os.environment; import android.support.v7.app.alertdialog; import android.support.v7.app.appcompatactivity; import android.os.bundle; import android.webkit.webchromeclient; import android.webkit.websettings; import android.webkit.webview; import 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程序设计有所帮助。