本文简单分析了AndroID webvIEw用法。分享给大家供大家参考,具体如下:
在AndroID手机中内置了一款高性能webkit内核浏览器,在SDK中封装成名为WebVIEw的组件。
WebVIEw使用:
(1)添加权限:AndroIDManifest.xml中必须使用许可"androID.permission.INTERNET",否则会出Web page not available错误。
(2)在要Activity中生成一个WebVIEw组件:复制代码 代码如下:WebVIEw webVIEw = new WebVIEw(this);
(3)设置WebVIEw基本信息:
webvIEw.getSettings().setJavaScriptEnabled(true);// 设置支持JavaScriptrequestFocus();// 触摸焦点起作用setScrollbarStyle(SCRolLbarS_OUTSIDE_OVERLAY);// 取消滚动条
(4)设置WevVIEw要显示的网页:
webVIEw.loadUrl("http://www.Google.com");// 互联网webVIEw.loadUrl("file:///androID_asset/XX.HTML");// 本地文件,本地文件存放在:assets文件中
(5)如果希望点击链接不打开AndroID的系统browser中响应,则需要给WebVIEw添加一个事件监听并重写shouldOverrIDeUrlLoading方法。
public boolean shouldOverrIDeUrlLoading(WebVIEw vIEw,String url) { vIEw.loadUrl(url); return true;}
其它部分可重写的方法:
(1)接收到http请求的事件
复制代码 代码如下:onReceivedhttpAuthRequest(WebVIEw vIEw,httpAuthHandler handler,String host,String realm)
(2)打开链接前的事件
public boolean shouldOverrIDeUrlLoading(WebVIEw vIEw,String url) { vIEw.loadUrl(url); return true;}
(3)载入页面完成的事件
public voID onPageFinished(WebVIEw vIEw,String url) {}
(4)载入页面开始的事件
public voID onPageStarted(WebVIEw vIEw,String url,Bitmap favicon) {}
这个事件就是开始载入页面调用的,通常我们可以在这设定一个loading的页面,告诉用户程序在等待网络响应。
一、如果用WebVIEw点链接看了很多页以后,如果不做任何处理,点击系统返回(Back)键,整个浏览器会调用finish()方法而结束自身,如果希望浏览的网页回退而不是退出浏览器,需要在当前Activity中处理并消费掉该Back事件。
覆盖Activity类的onKeyDown(int keyCoder,KeyEvent event)方法。
public boolean onKeyDown(int keyCode,KeyEvent event){ if(webVIEw.canGoBack() && keyCode == KeyEvent.KEYCODE_BACK){ webvIEw.goBack();// goBack()表示返回webVIEw的上一页面 return true; } return false;}
二、loadData()和loadDataWithBaseURL()使用的区别
loadData()中的HTML data中不能包含'#','%','\','?'四中特殊字符,出现这种字符就会出现解析错误,显示找不到网页还有部分HTML代码。
处理方法:我们需要用UrlEncoder编码为%23,%25,%27,%3f 。 可以使用以下两种代码,data为string类型的HTML代码 (1)webVIEw.loadData(URLEncoder.encode(data,"utf-8"),"text/HTML","utf-8"); (2)webVIEw.loadDataWithBaseURL(null,data,"utf-8",null);
WebVIEw相关属性:
(1)设置WebVIEw为透明:
androID:background="#00000000"androID:cachecolorHint="#00000000"WebVIEw.setBackgroundcolor(0);
(2)WebVIEw 显示sd卡图片:
复制代码 代码如下:webVIEw.loadDataWithBaseURL(null,"",null);
(3)WebVIEw显示字符串
复制代码 代码如下:webVIEw.loadDataWithBaseURL("","");
(4)设置WebVIEw中显示字体的大小
public static final TextSize[] Font_SIZES = new TextSize[] { TextSize.SMALLER,TextSize.norMAL,TextSize.LARGER};private WebSettings wb;wb = mWebVIEwRightContent.getSettings();wb.setTextSize(Font_SIZES[iFontSizeID]);
字体大小:
public enum TextSize { SMALLEST(50),SMALLER(75),norMAL(100),LARGER(150),LARGEST(200); TextSize(int size) { value = size; } int value;}
(5)WebVIEw显示HTML文件时,若要达到和PC上浏览器显示的效果完全一样,只需对WebVIEw做一下设置即可:
适应全屏
39 适应竖屏
57 适应横屏
复制代码 代码如下:mWebVIEw.setinitialScale(39);
注意的是:HTML如果字体太小则在AndroID手机上显示的就很小。一般为6、7号字体。
(6)WebVIEw设置渐变:
androID:fadingEdge="vertical"androID:fadingEdgeLength="20px" <!-- (垂直方向,上下渐变区域为20px)-->
(7)设置WebVIEw可触摸放大缩小:
复制代码 代码如下:mWebVIEw.getSettings().setBuiltInZoomControls(true);
(8)WebVIEw双击变大,再双击后变小,当手动放大后,双击可以恢复到原始大小,如下设置:
复制代码 代码如下:webVIEw.getSettings().setUseWIDeVIEwPort(true);
(9)几种加速WebVIEw加载的方法,提高渲染的优先级
复制代码 代码如下:webVIEw.getSettings().setRenderPriority(RenderPriority.HIGH);
使用复制代码 代码如下:webVIEw.getSettings().setBlockNetworkImage把图片加载放在最后来加载渲染复制代码 代码如下:webVIEw.getSettings().setBlockNetworkImage(true);
(10)将字符串转换成HTML形式的文件显示:
// 获取的字符串String sDetails = cursor.getString(cursor.getColumnIndex("sChinese"));// 按行截取字符串,将其存放在数组中String[] str = sDetails.split("\n");String s1 = "";// 遍历数组进行判断,如果条件成立,就添加设定的CSS样式for (int i = 0;i < str.length;i ++) { if (str[i].trim().startsWith("vt.")) { str[i] = "<h3 style=\"Font-size:10px; color:#000; background:#FCFCFC; padding:3px 5px;\">" + str[i] + "<h3>" + "\n"; } else if (getMark(str[i].trim())) { str[i] = "<h4 style=\"Font-size:10px; color:#F60; Font-weight:normal;\">" + str[i] + "</h4>" + "\n"; } else if (str[i].trim().startsWith("〖")) { str[i] = "<span style=\"color:#333; Font-size:10px; color:#F60\">" + str[i] + "</span>" + "\n"; } else { str[i] = "<p style=\"line-height:16px; Font-size:10px;color:#666;\">" + str[i] + "</p>" + "\n"; } // 将修改后的字符串拼接起来 s1 += str[i];}// 用WebVIEw将字符串以HTML的形式显示出来webVIEw.loadDataWithBaseURL("fake://not/needed",s1,"");
希望本文所述对大家AndroID程序设计有所帮助。
总结以上是内存溢出为你收集整理的Android webview用法实例简析全部内容,希望文章能够帮你解决Android webview用法实例简析所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)