本文实例讲述了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
相关文章:
三星网站视频制作教程下载,三星w23网页如何全屏?
专业制作网站的公司哪家好,建立一个公司网站的费用.有哪些部分,分别要多少钱?
C#怎么使用委托和事件 C# delegate与event编程方法
上海网站制作开发公司,上海买房比较好的网站有哪些?
枣阳网站制作,阳新火车站打的到仙岛湖多少钱?
如何通过远程VPS快速搭建个人网站?
广东企业建站网站优化与SEO营销核心策略指南
如何在Windows虚拟主机上快速搭建网站?
手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?
建站之星如何快速更换网站模板?
如何用美橙互联一键搭建多站合一网站?
如何在IIS管理器中快速创建并配置网站?
巅云智能建站系统:可视化拖拽+多端适配+免费模板一键生成
建站主机选购指南与交易推荐:核心配置解析
建站之星展会模版如何一键下载生成?
微信h5制作网站有哪些,免费微信H5页面制作工具?
深圳网站制作培训,深圳哪些招聘网站比较好?
图册素材网站设计制作软件,图册的导出方式有几种?
如何在腾讯云服务器快速搭建个人网站?
开封网站制作公司,网络用语开封是什么意思?
香港服务器网站推广:SEO优化与外贸独立站搭建策略
外贸公司网站制作哪家好,maersk船公司官网?
音乐网站服务器如何优化API响应速度?
智能起名网站制作软件有哪些,制作logo的软件?
行程制作网站有哪些,第三方机票电子行程单怎么开?
东莞专业网站制作公司有哪些,东莞招聘网站哪个好?
建站为何优先选择香港服务器?
江苏网站制作公司有哪些,江苏书法考级官方网站?
完全自定义免费建站平台:主题模板在线生成一站式服务
如何快速生成ASP一键建站模板并优化安全性?
佛山网站制作系统,佛山企业变更地址网上办理步骤?
已有域名建站全流程解析:网站搭建步骤与建站工具选择
网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?
魔毅自助建站系统:模板定制与SEO优化一键生成指南
制作营销网站公司,淘特是干什么用的?
如何高效利用亚马逊云主机搭建企业网站?
宝塔新建站点为何无法访问?如何排查?
网站制作知乎推荐,想做自己的网站用什么工具比较好?
建站之星3.0如何解决常见操作问题?
如何选择香港主机高效搭建外贸独立站?
如何高效配置IIS服务器搭建网站?
高防服务器租用指南:配置选择与快速部署攻略
如何快速生成专业多端适配建站电话?
宝塔建站后网页无法访问如何解决?
建站之星后台管理:高效配置与模板优化提升用户体验
招贴海报怎么做,什么是海报招贴?
如何快速搭建安全的FTP站点?
如何在宝塔面板中创建新站点?
网站制作和推广的区别,想自己建立一个网站做推广,有什么快捷方法马上做好一个网站?
电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?
*请认真填写需求信息,我们会在24小时内与您取得联系。