ProgressBar+WebView实现自定义浏览器
2015-11-06 20:34
183 查看
当我们使用浏览器浏览网页时,总会看到下图页面的样子,上面是一个地址栏,地址栏下面显示加载进度,加载完成后进入页面内容,带颜色的进度条总是少不了的,那样子看起来也舒服,如何实现自定义手机浏览器功能呢?
![](http://www.teachcourse.cn/wp-content/uploads/2015/11/Screenshot_2015-11-05-19-33-39.jpeg)
上面是360浏览器加载过程的截图,看起来也不算复杂,在做安卓开发中,经常要用到浏览器加载HTML的页面,于是想做一个demo,避免每次重复写的麻烦,效果图如下:
![](http://www.teachcourse.cn/wp-content/uploads/2015/11/QQ%E5%9B%BE%E7%89%8720151105173526.png)
![](http://www.teachcourse.cn/wp-content/uploads/2015/11/QQ%E5%9B%BE%E7%89%8720151105173325.png)
第一步:自定义WebView,命名ProgressWebView,在自定义ProgressWebView中添加进度条效果,代码如下:
在这个构造方法里面,自定义进度条属性,设置为水平进度条,进度条的高度,同时定义进度条状态颜色,写在progress_bar_states.xml文件中,代码如下:
在这个xml文件中,可以按照自己喜好设置加载颜色,然后把进度条视图添加到WebView视图中,在使用ProgressWebView加载
HTML网页,可以像360浏览器一样显示加载进度。setWebChromeClient(new
WebChromeClient())用于加载请求的网页,支持进度条、js等效果,这里定义一个内部类WebChromeClient,代码如下:
这两个getSettings().setSupportZoom(true)和getSettings().setBuiltInZoomControls(true)设置是否支持缩放。
第二步:定义显示类,命名ProgressWebActivity.java,布局文件命名main_web.xml,代码如下:
ProgressWebActivity.java代码:
initData方法获取上一个Activity传递过来的Intent数据,取出网页URL,判断连接是否为空,如果不为空,则使用自定义的ProgressWebView的loadUrl()方法加载,这个时候我们将会在APP端看到如下效果:
![](http://www.teachcourse.cn/wp-content/uploads/2015/11/QQ%E5%9B%BE%E7%89%8720151105173646.png)
initTitleView用于设置浏览器顶部导航条,显示返回按钮和浏览新闻文字。
第三步:在需要使用自定义浏览器这个类ProgressWebActivity的地方,我们只需要设置Intent的数据,然后启动ProgressWebActivity加载之定义URL,实现带进度条加载指定页面的功能。
到这里,我们使用ProgressBar+WebView自定义浏览器器的功能基本完成!
![](http://www.teachcourse.cn/wp-content/uploads/2015/11/Screenshot_2015-11-05-19-33-39.jpeg)
上面是360浏览器加载过程的截图,看起来也不算复杂,在做安卓开发中,经常要用到浏览器加载HTML的页面,于是想做一个demo,避免每次重复写的麻烦,效果图如下:
![](http://www.teachcourse.cn/wp-content/uploads/2015/11/QQ%E5%9B%BE%E7%89%8720151105173526.png)
![](http://www.teachcourse.cn/wp-content/uploads/2015/11/QQ%E5%9B%BE%E7%89%8720151105173325.png)
第一步:自定义WebView,命名ProgressWebView,在自定义ProgressWebView中添加进度条效果,代码如下:
HTML网页,可以像360浏览器一样显示加载进度。setWebChromeClient(new
WebChromeClient())用于加载请求的网页,支持进度条、js等效果,这里定义一个内部类WebChromeClient,代码如下:
第二步:定义显示类,命名ProgressWebActivity.java,布局文件命名main_web.xml,代码如下:
![](http://www.teachcourse.cn/wp-content/uploads/2015/11/QQ%E5%9B%BE%E7%89%8720151105173646.png)
initTitleView用于设置浏览器顶部导航条,显示返回按钮和浏览新闻文字。
第三步:在需要使用自定义浏览器这个类ProgressWebActivity的地方,我们只需要设置Intent的数据,然后启动ProgressWebActivity加载之定义URL,实现带进度条加载指定页面的功能。
相关文章推荐
- cocos游戏开发-环境搭建
- swift 2.0 语法 可选类型
- Android Graphics Pipeline: From Button to Framebuffer (Part 2)
- swift 2.0 语法 分支
- 烧机命令
- swift 2.0语法 元组
- swift 2.0 语法 常量变量
- Android之ProgressBar读取文件进度解析
- 远端绑定Service第三篇之客户端的Service
- Android Handler学习笔记
- iOS 自己开发SDK必须要注意的几点
- 如何用doxygen生成cocos2d-x文档
- Unity3D GUI学习之GUILayout控件及使用
- Android TextView中插入图片
- Unity行为树
- unity手游之聊天SDK集成与使用二
- Applied Micro Mustang 支持kvm
- #在蓝懿学习iOS的日子#Day13
- 布局文件中控件中加入extra中的值
- 检查 android.mk条件如果执行,在android.mk中打印日志信息