本文实例讲述了Android编程实现WebView添加进度条的方法。分享给大家供大家参考,具体如下:

标准的XML界面
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <ProgressBar android:id="@+id/pb" style="?android:attr/progressBarStyleHorizontal" android:layout_width="fill_parent" android:layout_height="8dip" android:indeterminateOnly="false" android:max="100" android:progressDrawable="@drawable/progress_bar_states" > </ProgressBar> <WebView android:id="@+id/webview" android:layout_width="match_parent" android:layout_height="match_parent" /> </LinearLayout>
上面声明了两个控件,一个是progressBar 一个是 webview,progressbar用来显示webview控件的加载进度的
值得注意的是我们重写的progressdrawable这个属性,把原来难看的加载条,稍稍美化了一些,下面就是xml代码:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/background">
<shape>
<gradient
android:startColor="#ff0000"
android:centerColor="#ffa600"
android:endColor="#ff5500"
/>
</shape>
</item>
<item android:id="@android:id/secondaryProgress">
<clip>
<shape>
<gradient
android:startColor="#234"
android:centerColor="#234"
android:endColor="#a24"
/>
</shape>
</clip>
</item>
<item android:id="@android:id/progress">
<clip>
<shape>
<gradient
android:startColor="#33000001"
android:centerColor="#40000000"
android:endColor="#44000000"
/>
</shape>
</clip>
</item>
</layer-list>
下面是Activity的java代码:
ProgressBar pb;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.xxx);
pb = (ProgressBar) findViewById(R.id.pb);
pb.setMax(100);
WebView webView = (WebView) findViewById(R.id.webview);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setSupportZoom(true);
webView.getSettings().setBuiltInZoomControls(true);
webView.setWebChromeClient(new WebViewClient() );
webView.loadUrl("http://www.x.com");
}
private class WebViewClient extends WebChromeClient {
@Override
public void onProgressChanged(WebView view, int newProgress) {
pb.setProgress(newProgress);
if(newProgress==100){
pb.setVisibility(View.GONE);
}
super.onProgressChanged(view, newProgress);
}
}
关键地方是重写了一个webchromeclient中的onprogressChange方法,这样我们就能控制progress的进度啦,是不是很方便的,京东也是这么干的哦,快去试一试吧
更多关于Android相关内容感兴趣的读者可查看本站专题:《Android视图View技巧总结》、《Android开发动画技巧汇总》、《Android编程之activity操作技巧总结》、《Android布局layout技巧总结》、《Android开发入门与进阶教程》、《Android资源操作技巧汇总》及《Android控件用法总结》
希望本文所述对大家Android程序设计有所帮助。
# Android
# WebView
# 添加
# 进度条
# Android中WebView加载网页设置进度条
# Android自定义带进度条WebView仿微信加载过程
# Android 实现带进度条的WebView的实例
# android实现用户体验超棒的微信WebView进度条
# Android 带进度条的WebView 示例代码
# Android Webview添加网页加载进度条实例详解
# Android WebView线性进度条实例详解
# Android中实现Webview顶部带进度条的方法
# Android WebView实现顶部进度条
# 的是
# 进阶
# 操作技巧
# 加载
# 相关内容
# 就能
# 感兴趣
# 给大家
# 写了
# 重写
# 快去
# 更多关于
# 很方便
# 所述
# 程序设计
# 京东
# 讲述了
# progressBarStyleHorizontal
# attr
相关文章:
香港服务器网站生成指南:免费资源整合与高速稳定配置方案
如何在景安服务器上快速搭建个人网站?
小程序网站制作需要准备什么资料,如何制作小程序?
香港服务器建站指南:免备案优势与SEO优化技巧全解析
如何在Windows虚拟主机上快速搭建网站?
如何用wdcp快速搭建高效网站?
建站主机是什么?如何选择适合的建站主机?
哈尔滨网站建设策划,哈尔滨电工证查询网站?
香港服务器建站指南:外贸独立站搭建与跨境电商配置流程
营销式网站制作方案,销售哪个网站招聘效果最好?
兔展官网 在线制作,怎样制作微信请帖?
韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南
在线教育网站制作平台,山西立德教育官网?
,想在网上投简历,哪几个网站比较好?
如何做静态网页,sublimetext3.0制作静态网页?
北京的网站制作公司有哪些,哪个视频网站最好?
实现虚拟支付需哪些建站技术支撑?
建站之星如何助力网站排名飙升?揭秘高效技巧
智能起名网站制作软件有哪些,制作logo的软件?
宿州网站制作公司兴策,安徽省低保查询网站?
建站主机默认首页配置指南:核心功能与访问路径优化
jQuery 常见小例汇总
如何用搬瓦工VPS快速搭建个人网站?
怎么将XML数据可视化 D3.js加载XML
建站一年半SEO优化实战指南:核心词挖掘与长尾流量提升策略
如何配置WinSCP新建站点的密钥验证步骤?
重庆市网站制作公司,重庆招聘网站哪个好?
电商平台网站制作流程,电商网站如何制作?
企业微网站怎么做,公司网站和公众号有什么区别?
网站设计制作企业有哪些,抖音官网主页怎么设置?
html制作网站的步骤有哪些,iapp如何添加网页?
打鱼网站制作软件,波克捕鱼官方号怎么注册?
专业公司网站制作公司,用什么语言做企业网站比较好?
内网网站制作软件,内网的网站如何发布到外网?
建站主机如何安装配置?新手必看操作指南
美食网站链接制作教程视频,哪个教做美食的网站比较专业点?
百度网页制作网站有哪些,谁能告诉我百度网站是怎么联系?
官网自助建站系统:SEO优化+多语言支持,快速搭建专业网站
如何在宝塔面板中创建新站点?
如何选择适合PHP云建站的开源框架?
代购小票制作网站有哪些,购物小票的简要说明?
Swift中循环语句中的转移语句 break 和 continue
建站之星各版本价格是多少?
如何通过西部建站助手安装IIS服务器?
手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?
建站之星IIS配置教程:代码生成技巧与站点搭建指南
C++如何使用std::optional?(处理可选值)
网站制作价目表怎么做,珍爱网婚介费用多少?
网站制作报价单模板图片,小松挖机官方网站报价?
唐山网站制作公司有哪些,唐山找工作哪个网站最靠谱?
*请认真填写需求信息,我们会在24小时内与您取得联系。