Android编程实现WebView添加进度条的方法
程序员文章站
2023-12-19 18:12:52
本文实例讲述了android编程实现webview添加进度条的方法。分享给大家供大家参考,具体如下:
标准的xml界面
本文实例讲述了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编程之非调用系统界面实现发送彩信的方法(MMS)
-
Android编程实现自动调整TextView字体大小以适应文字长度的方法
-
Android编程实现在一个程序中启动另一个程序的方法
-
Android编程开发实现TextView显示表情图像和文字的方法
-
Android编程实现自定义Dialog的大小自动控制方法示例
-
Android编程自定义进度条颜色的方法详解
-
Android编程实现EditText字数监听并显示的方法
-
Android编程实现使用webView打开本地html文件的方法
-
Android编程实现下载图片及在手机中展示的方法