在android应用中,有时要加载一个网页,如果能配上一个进度条就更好了,而android 中提供了其很好的支持,

其中webView的一系列用法,比如

webView.getSettings().setJavaScriptEnabled(true); //设置可以使用javascript
webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY); //设置滚动条风格
webView.setHorizontalScrollBarEnabled(false);
webView.getSettings().setSupportZoom(true);
webView.getSettings().setBuiltInZoomControls(true); //设置可以支持缩放
webView.setInitialScale(25); //为25%,最小缩放等级 ,可以在这里根据需求来设置缩放比例.
webView.setHorizontalScrollbarOverlay(true);
下面是一个例子程序,先帖:

主程序:

public class WebPageLoader extends Activity
02
{
03
final Activity activity = this;
04
@Override
05
public void onCreate(Bundle savedInstanceState)
06
{
07
super.onCreate(savedInstanceState);
08
this.getWindow().requestFeature(Window.FEATURE_PROGRESS);
09
setContentView(R.layout.main);
10
WebView webView = (WebView) findViewById(R.id.webView);

11
webView.getSettings().setJavaScriptEnabled(true);
12
webView.getSettings().setSupportZoom(true);
//点击链接在当前browser中响应,而不是新开Android系统browser中响应该链接
13
webView.setWebChromeClient(new WebChromeClient()
14
{
15
public void onProgressChanged(WebView view, int progress)
16
{
17
activity.setTitle("Loading...");
18
activity.setProgress(progress * 100);
19
if(progress == 100){
20
activity.setTitle(R.string.app_name);
21
}
22
}
23
);
24
webView.setWebViewClient(new WebViewClient() {
25

26
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl)
27
{ // Handle the error
28

29
}
30

31
public boolean shouldOverrideUrlLoading(WebView view, String url)
32
{
33
view.loadUrl(url);
34
return true;
35
}
36
});
37
webView.loadUrl("http://www.sohu.com");
38
}
39
}

而进度条的使用是在new出一个setWebChromeClient后,可以在内部类中写 onProgressChanged事件

在WebView的设计中,不是什么事都要WebView类干的,有些杂事是分给其他人的,这样WebView专心干好自己的解析、渲染工作就行了。WebViewClient 就是帮助WebView处理各种通知、请求事件的,具体来说包括:

WebChromeClient是辅助WebView处理Javascript的对话框,网站图标,网站title,加载进度等

判断加载的页面URL地址是否正确:
if(URLUtil.isNetworkUrl(url)==true)

最新文章

  1. 将表里的数据批量生成INSERT语句的存储过程 增强版
  2. Golang 语法学习笔记
  3. How do I see all foreign keys to a table or column?
  4. iTerm2 cheatsheet (from github)
  5. mybatis 基础1(动态代理)
  6. nodejs系列(二)REPL交互解释 事件循环
  7. 夺命雷公狗—angularjs—7—多条数据的遍历
  8. 《Java编程那点事儿》读书笔记(六)——异常处理
  9. 树莓派学习路程No.1 树莓派系统安装与登录 更换软件源 配置wifi
  10. ASP.NET MVC基础学习
  11. Unreal Engine 4(虚幻UE4)GameplayAbilities 插件入门教程(七)Ability的信息传递等
  12. Java基础---泛型、集合框架工具类:collections和Arrays
  13. JaveScript基础(2)之数据类型转换和常用字符串的操作方法
  14. Redis常用数据类型和事物以及并发
  15. WinForm中使用BackgroundWorker异步加载数据并使用进度条
  16. easyui webapi
  17. HIVE点滴:group by和distinct语句的执行顺序
  18. Exp9 20155218 Web安全基础实践
  19. redis for windows安装
  20. Informix存储过程

热门文章

  1. TCP/IP详解学习笔记(15)-- TCP的流量控制和拥塞控制
  2. JavaScript探秘系列
  3. 2.1Android底层开发需要哪些工具
  4. Android IOS WebRTC 音视频开发总结(三二)-- WebRTC项目开发建议
  5. javaSE第十八天
  6. Linux使用有线上网教程
  7. Observer
  8. CentOS下修复grub引导程序
  9. jQuery类级别插件--返回顶部,底部,去到任何部位
  10. linux下关于mysqldump备份的.sql导入数据库表数据丢失优化