永发信息网

android中webview 怎么实现网页加载时显示加载进度

答案:2  悬赏:0  手机版
解决时间 2021-01-23 00:40
  • 提问者网友:且恨且铭记
  • 2021-01-22 20:25
android中webview 怎么实现网页加载时显示加载进度
最佳答案
  • 五星知识达人网友:三千妖杀
  • 2021-01-22 21:04
首先要使其不是通过手机本身的浏览器来实现浏览网页而是通过这个webview来实现所浏览的网页,

webView.setWebViewClient(new MyWebViewClient());

首先要定义一个progressDialog来实现中间显示加载进度和温馨提示

private class MyWebViewClient extends WebViewClient{
@Override
public void onPageStarted(WebView view, String url,Bitmap favicon) {//网页页面开始加载的时候
if (progressDialog == null) {
progressDialog=new ProgressDialog(MainActivity.this);
progressDialog.setMessage("数据加载中,请稍后。。。");
progressDialog.show();
webView.setEnabled(false);// 当加载网页的时候将网页进行隐藏
}
super.onPageStarted(view, url,favicon);
}
@Override
public void onPageFinished(WebView view, String url) {//网页加载结束的时候
//super.onPageFinished(view, url);
if (progressDialog != null && progressDialog.isShowing()) {
progressDialog.dismiss();
progressDialog = null;
webView.setEnabled(true);
}
}
@Override
public boolean shouldOverrideUrlLoading(WebView view ,String url){ //网页加载时的连接的网址
view.loadUrl(url);
return false;
}
}
全部回答
  • 1楼网友:老鼠爱大米
  • 2021-01-22 21:53
android中只需要给webView注册一个事件即可实现加载进度。
以下是具体实现代码:
1.从webView中获取设置
WebSettings sws = webView.getSettings();
sws.setSupportZoom(true);
sws.setBuiltInZoomControls(true);
webView.setInitialScale(25);
webView.getSettings().setUseWideViewPort(true);
2.注册setWebChromeClient事件
webView.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int progress) {
// Activity和Webview根据加载程度决定进度条的进度大小
// 当加载到100%的时候 进度条自动消失
//WebViewProgressActivity.this.setTitle("Loading...");
//WebViewProgressActivity.this.setProgress(progress * 100);
if (progress == 100) {
progressBar.setVisibility(View.GONE);
//WebViewProgressActivity.this.setTitle("完成");
}
}
});
3.注意在onProgressChanged中处理进度,progress就是进度值。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯