进度条

本文介绍如何使用Android的WebView组件加载网页,并通过ProgressBar显示加载进度。详细解释了WebView的配置,包括JavaScript支持、布局调整及跨域访问设置,以及如何监听加载进度并更新进度条。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

xml文件:

<?xml version="1.0" encoding="utf-8"?>

    <ProgressBar
        android:id="@+id/prog"
        android:layout_width="match_parent"
        android:layout_height="5dp"
        android:max="100"
        style="?android:attr/progressBarStyleHorizontal"/>
    <WebView
        android:id="@+id/show"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

    </WebView>
Java文件: public class SecondActivity extends Activity { private ProgressBar progressBar; WebView webView;
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉系统导航栏
    String url = SecondActivity.this.getIntent().getStringExtra("name");//传过来的url
    setContentView(R.layout.activity_second);
    progressBar = (ProgressBar) findViewById(R.id.prog);
    webView = (WebView) findViewById(R.id.show);
    webView.setWebChromeClient(new WebChromeClient());
    webView.getSettings().setUseWideViewPort(true);
    webView.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS);
    webView.getSettings().setLoadWithOverviewMode(true);
    //开启javascript调用
    webView.getSettings().setJavaScriptEnabled(true);
    webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
    webView.getSettings().setAllowUniversalAccessFromFileURLs(true);//跨域
    webView.setWebViewClient(new WebViewClient() {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return super.shouldOverrideUrlLoading(view, url);
        }
    });
    webView.loadUrl(url);
    //加载进度条
    webView.setWebChromeClient(new WebChromeClient() {
        @Override
        public void onProgressChanged(WebView view, int newProgress) {
            // TODO Auto-generated method stub
            if (newProgress == 100) {
                // 网页加载完成
                progressBar.setVisibility(View.GONE);//加载完网页进度条消失
            } else {
                // 加载中
                progressBar.setVisibility(View.VISIBLE);//开始加载网页时显示进度条
                progressBar.setProgress(newProgress);//设置进度值
            }

        }
    });
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值