实现的效果比较简单类似于微信打开网页,头部有个进度条显示加载进度
下载地址:http://download.csdn.net/detail/qq_29774291/9666941
1.在安卓端加载一个网页
webView.loadUrl(urlString);
2.显示网页开始加载和加载的进度;不过在有时会出现onPageStarted等多次调用的情况,也许是网页的问题,未找到处理方法
@Override public void onPageStarted(WebView view, String url, Bitmap favicon) { // TODO Auto-generated method stub super.onPageStarted(view, url, favicon); System.out.println("Page开始 " + url + " " + favicon); } @Override public void onPageFinished(WebView view, String url) { // TODO Auto-generated method stub super.onPageFinished(view, url); System.out.println("Page结束 " +url); }
webView.setWebChromeClient(new WebChromeClient(){ @Override public void onProgressChanged(WebView view, int newProgress) { // TODO Auto-generated method stub super.onProgressChanged(view, newProgress); Log.d("jiejie", "ProgressChanged++ " + newProgress); if(newProgress ==100){ progressBar.setVisibility(View.GONE); //progressBar.setProgress(newProgress); }else { progressBar.setVisibility(View.VISIBLE); progressBar.setProgress(newProgress);//设置加载进度 } } });
3.重写下ProgressBar的背景颜色progressDrawable需要使用layer-list来进行实现
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:andro >
<item android:>
<shape>
<corners android:radius="2dp" />
<gradient
android:angle="270"
android:centerColor="#E3E3E3"
android:endColor="#E6E6E6"
android:startColor="#C8C8C8" />
</shape>
</item>
<item android:>
<clip>
<shape>
<corners android:radius="2dp" />
<gradient
android:centerColor="#4AEA2F"
android:endColor="#31CE15"
android:startColor="#5FEC46" />
</shape>
</clip>
</item>
</layer-list>