android webview加载html加载css样式&点击查看大图&点击查看全部大图
2018-01-30 13:57
447 查看
本章节讲述 android webview加载html加载css样式&点击查看大图&点击查看全部大图
WebView加载html
1.加载内容
String content ="<p><img src=\"http://XXXXXX/Upload/avatar/a025fe93cb5d401ead309a822707855e1516155901591.png_bak.png\"
/>\n"+
"\n"+
"\n"+
"先说第一个,如何绘制波浪图形。绘制波浪图形的方法有很多,这里介绍一种最简单的方法,就是使用canvas的drawLine方法绘制直线。我们可以将view的宽度转化成弧度,通过sin或者cos方法获取每个像素点的坐标,通过drawline绘制一条从顶点到底部的直线,这样都可以达到效果。\n"+
"\n"+
"\n"+
"再说第二个,这个是一个难点,但是实现起来却很简单。我们获取的坐标是从0-360度的坐标,也就是说,最后一个的坐标接下来的坐标应该是第一的坐标,它们是一个连续的没有断开的坐标系列,那么我们只需要将坐标按照一定的规则交换一下位置就可以实现波浪的荡漾效果了。\n"+
"\n"+
"\n"+
"<img src=\"http://XXXXXX/Upload/avatar/88e1cea03011497faa93f7c15fac81b31514426860951.png_bak.png\"
/>\n"+
"\n"+
"\n"+
"阿迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发<img
src=\"http://XXXXXX/Upload/avatar/9bed29f2dee94d8ba6265f949c094fed1514878987457.png_bak.png\" />迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发\n"+
"\n"+
"\n"+
"\n"+
"</p>\n"+
"<p><font color='red'>先说第一个,如何绘制波浪图形。绘制波浪图形的方法有很多,这里介绍一种最简单的方法,就是使用canvas的drawLine方法绘制直线。我们可以将view的宽度转化成弧度,通过sin或者cos方法获取每个像素点的坐标,通过drawline绘制一条从顶点到底部的直线,这样都可以达到效果。\n"+
"\n"+
"再说第二个,这个是一个难点,但是实现起来却很简单。我们获取的坐标是从0-360度的坐标,也就是说,最后一个的坐标接下来的坐标应该是第一的坐标,它们是一个连续的没有断开的坐标系列,那么我们只需要将坐标按照一定的规则交换一下位置就可以实现波浪的荡漾效果了。</font></p>";
2.加载样式
String linkCss ="<style type=\"text/css\">
"+
"img {" +
"width:100%;" +
"height:auto;" +
"}" +
"body {" +
"margin-right:15px;" +
"margin-left:15px;" +
"margin-top:15px;" +
"font-size:15px;" +
"}" +
"</style>";
3.加载
String html ="<html><header>"
+ linkCss + "</header>" + content +
"</body></html>";
webView.loadData(html,
"text/html", "uft-8");
4.调整图片大小
private void imgReset() {
String method ="javascript:(function(){" +
"var objs = document.getElementsByTagName('img'); " +
"for(var i=0;i<objs.length;i++) " +
"{"
+ "var img = objs[i]; " +
" img.style.maxWidth = '100%'; img.style.height = 'auto'; " +
"}" +
"})()"
webView.loadUrl(method);
}
5.查看大图(单张)
private voidaddImageClickListner()
{
String method="javascript:(function(){"
+ "var objs = document.getElementsByTagName(\"img\");
"
+ "for(var i=0;i<objs.length;i++) "+
"{"
+ " objs[i].onclick=function() "+
" { "
+ " window.imagelistner.openImage(this.src); "
+ " } "
+ "}" +
"})()";
webView.loadUrl(method);
}
6.查看图片全部
private voidaddImageClickListnerAll() {
String method=""+
"javascript:(function()" +
"{"
+ "var objs = document.getElementsByTagName(\"img\");
"
+ "for(var i=0;i<objs.length;i++) "
+ "{"
+ "window.imagelistner.getAllImagPath(i,objs[i].src);"
+ "}"
+ "})()";
webView.loadUrl(method);
}
7.使用
public voidonPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
//html加载完成之后,添加监听图片的点击js函数
addImageClickListner();
addImageClickListnerAll();
imgReset();
};
8.调用
@SuppressLint("JavascriptInterface")
public class JavascriptInterface {
privateContext
context;
public JavascriptInterface(Context context) {
this.context=context;
}
@android.webkit.JavascriptInterface
public voidopenImage(String img) {
String path[] =new String []{img};
int num=list.size();
if(num>0){
path=list.toArray(newString[list.size()]);
}
Intent intent=new Intent();
intent.putExtra("path", path);
intent.setClass(context, ShowWebBigImagActivity.class);
context.startActivity(intent);
FormDetailsWebViewActivity.this.overridePendingTransition(R.anim.alphain, R.anim.alphaout);
}
@android.webkit.JavascriptInterface
public voidgetAllImagPath(int
position,String path){
Log.d("WebView","position----:"+position);
Log.d("WebView","path----:"+path);
hashMap.put(position,path);
list.add(path);
}
}
WebView加载html
1.加载内容
String content ="<p><img src=\"http://XXXXXX/Upload/avatar/a025fe93cb5d401ead309a822707855e1516155901591.png_bak.png\"
/>\n"+
"\n"+
"\n"+
"先说第一个,如何绘制波浪图形。绘制波浪图形的方法有很多,这里介绍一种最简单的方法,就是使用canvas的drawLine方法绘制直线。我们可以将view的宽度转化成弧度,通过sin或者cos方法获取每个像素点的坐标,通过drawline绘制一条从顶点到底部的直线,这样都可以达到效果。\n"+
"\n"+
"\n"+
"再说第二个,这个是一个难点,但是实现起来却很简单。我们获取的坐标是从0-360度的坐标,也就是说,最后一个的坐标接下来的坐标应该是第一的坐标,它们是一个连续的没有断开的坐标系列,那么我们只需要将坐标按照一定的规则交换一下位置就可以实现波浪的荡漾效果了。\n"+
"\n"+
"\n"+
"<img src=\"http://XXXXXX/Upload/avatar/88e1cea03011497faa93f7c15fac81b31514426860951.png_bak.png\"
/>\n"+
"\n"+
"\n"+
"阿迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发<img
src=\"http://XXXXXX/Upload/avatar/9bed29f2dee94d8ba6265f949c094fed1514878987457.png_bak.png\" />迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发迪斯发多发\n"+
"\n"+
"\n"+
"\n"+
"</p>\n"+
"<p><font color='red'>先说第一个,如何绘制波浪图形。绘制波浪图形的方法有很多,这里介绍一种最简单的方法,就是使用canvas的drawLine方法绘制直线。我们可以将view的宽度转化成弧度,通过sin或者cos方法获取每个像素点的坐标,通过drawline绘制一条从顶点到底部的直线,这样都可以达到效果。\n"+
"\n"+
"再说第二个,这个是一个难点,但是实现起来却很简单。我们获取的坐标是从0-360度的坐标,也就是说,最后一个的坐标接下来的坐标应该是第一的坐标,它们是一个连续的没有断开的坐标系列,那么我们只需要将坐标按照一定的规则交换一下位置就可以实现波浪的荡漾效果了。</font></p>";
2.加载样式
String linkCss ="<style type=\"text/css\">
"+
"img {" +
"width:100%;" +
"height:auto;" +
"}" +
"body {" +
"margin-right:15px;" +
"margin-left:15px;" +
"margin-top:15px;" +
"font-size:15px;" +
"}" +
"</style>";
3.加载
String html ="<html><header>"
+ linkCss + "</header>" + content +
"</body></html>";
webView.loadData(html,
"text/html", "uft-8");
4.调整图片大小
private void imgReset() {
String method ="javascript:(function(){" +
"var objs = document.getElementsByTagName('img'); " +
"for(var i=0;i<objs.length;i++) " +
"{"
+ "var img = objs[i]; " +
" img.style.maxWidth = '100%'; img.style.height = 'auto'; " +
"}" +
"})()"
webView.loadUrl(method);
}
5.查看大图(单张)
private voidaddImageClickListner()
{
String method="javascript:(function(){"
+ "var objs = document.getElementsByTagName(\"img\");
"
+ "for(var i=0;i<objs.length;i++) "+
"{"
+ " objs[i].onclick=function() "+
" { "
+ " window.imagelistner.openImage(this.src); "
+ " } "
+ "}" +
"})()";
webView.loadUrl(method);
}
6.查看图片全部
private voidaddImageClickListnerAll() {
String method=""+
"javascript:(function()" +
"{"
+ "var objs = document.getElementsByTagName(\"img\");
"
+ "for(var i=0;i<objs.length;i++) "
+ "{"
+ "window.imagelistner.getAllImagPath(i,objs[i].src);"
+ "}"
+ "})()";
webView.loadUrl(method);
}
7.使用
public voidonPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
//html加载完成之后,添加监听图片的点击js函数
addImageClickListner();
addImageClickListnerAll();
imgReset();
};
8.调用
@SuppressLint("JavascriptInterface")
public class JavascriptInterface {
privateContext
context;
public JavascriptInterface(Context context) {
this.context=context;
}
@android.webkit.JavascriptInterface
public voidopenImage(String img) {
String path[] =new String []{img};
int num=list.size();
if(num>0){
path=list.toArray(newString[list.size()]);
}
Intent intent=new Intent();
intent.putExtra("path", path);
intent.setClass(context, ShowWebBigImagActivity.class);
context.startActivity(intent);
FormDetailsWebViewActivity.this.overridePendingTransition(R.anim.alphain, R.anim.alphaout);
}
@android.webkit.JavascriptInterface
public voidgetAllImagPath(int
position,String path){
Log.d("WebView","position----:"+position);
Log.d("WebView","path----:"+path);
hashMap.put(position,path);
list.add(path);
}
}
相关文章推荐
- android webview加载html图片自适应手机屏幕大小&点击查看大图
- android webview加载html图片自适应手机屏幕大小&点击查看大图
- android webview加载html图片自适应手机屏幕大小&点击查看大图
- Android TextView加载HTMl图文之添加点击事件和查看图片
- Android点击WebView中的图片查看大图
- Android中WebView加载Html中的图片添加点击事件
- Android 实现WebView点击图片查看大图列表及图片保存功能
- Android 实现WebView点击图片查看大图列表及图片保存
- Android 获取WebView的HTML图片点击及查看
- [置顶] Android 实现WebView点击图片查看大图列表及图片保存
- Android的webview加载本地html、assert内html和网络URL&&& JS与移动端webview的相互交互
- android webview点击返回键回到上一个html
- android webview点击返回键返回上一个html
- Android在网页下(WebView中运用HTML)点击按钮打开本地手机应用程序
- Android WebView加载Html右边空白问题的解决方案
- Android的webview加载本地html、本apk内html和远程URL
- Android的webview加载本地html、本apk内html和远程URL
- Android WebView加载本地Html文件
- Android的webview加载本地html、本apk内html和远程URL
- android WebView 控件加载本地sdcard中html文件图片的问题