您的位置:首页 > 移动开发 > Android开发

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);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息