zoukankan      html  css  js  c++  java
  • android的WebView进度条

    import android.app.Activity;
    import android.graphics.Color;
    import android.os.Bundle;
    import android.os.Handler;
    import android.view.Menu;
    import android.view.View;
    import android.webkit.WebChromeClient;
    import android.webkit.WebView;
    import android.webkit.WebViewClient;
    import android.widget.LinearLayout;
    import android.widget.ProgressBar;
    import android.widget.TextView;
     
    public class MainActivity extends Activity {
            Handler handler;
            WebView wv;
            TextView textView;
            ProgressBar progressBar;
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
    //        requestWindowFeature(Window.FEATURE_NO_TITLE);
    //                getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
    //                                WindowManager.LayoutParams.FLAG_FULLSCREEN);
                    LinearLayout rootViewLayout = new LinearLayout(this);
                    rootViewLayout.setOrientation(LinearLayout.VERTICAL);
                    textView = new TextView(this);
                    textView.setTextColor(Color.RED);
                    //生成水平进度条
                    progressBar = new ProgressBar(this,null,android.R.attr.progressBarStyleHorizontal);
                    wv = new WebView(this);
                    rootViewLayout.addView(textView);
                    rootViewLayout.addView(progressBar);
                    rootViewLayout.addView(wv);
            setContentView(rootViewLayout);
             wv.getSettings().setAllowFileAccess(true); 
             wv.getSettings().setJavaScriptEnabled(true);
             //这里吐槽一下这J8网站 写你妹的排队,排你大爷
            wv.loadUrl("http://www.12306.cn");
            wv.setWebViewClient(new WebViewClient(){
                            @Override
                            public void onPageFinished(WebView view, String url) {
                                    // TODO Auto-generated method stub
                                    super.onPageFinished(view, url);
                                    //页面下载完毕,却不代表页面渲染完毕显示出来
                                    //WebChromeClient中progress==100时也是一样
                                    if (wv.getContentHeight() != 0) {
                                            //这个时候网页才显示
                                    }
                            }
                            @Override
                            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                                    // TODO Auto-generated method stub
                                    //自身加载新链接,不做外部跳转
                                    view.loadUrl(url);
                                    return true;
                            }
                             
            });
             
            wv.setWebChromeClient(new WebChromeClient(){
                    @Override
                    public void onProgressChanged(WebView view, int newProgress) {
                            // TODO Auto-generated method stub
                            super.onProgressChanged(view, newProgress);
                            //这里将textView换成你的progress来设置进度
    //                        if (newProgress == 0) {
    //                                        textView.setVisibility(View.VISIBLE);
    //                                        progressBar.setVisibility(View.VISIBLE);
    //                                }
                            textView.setText(newProgress+"");
                            textView.postInvalidate();
                            progressBar.setProgress(newProgress);
                            progressBar.postInvalidate();
    //                        if (newProgress == 100) {
    //                                        textView.setVisibility(View.GONE);
    //                                        progressBar.setVisibility(View.GONE);
    //                                }
                    }
            });
        }
     
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            getMenuInflater().inflate(R.menu.activity_main, menu);
            return true;
        }
    }


  • 相关阅读:
    codevs 2602 最短路径问题x
    codevs 1077 多源最短路x
    2010TianjinRegional 部分题解
    [CF706D]Vasiliy's Multiset(异或字典树)
    [CF710E]Generate a String(DP)
    [CF710C]Magic Odd Square(构造)
    [CF151B]Phone Numbers(暴力,模拟)
    [POJ2104]K-th Number(主席树,静态区间k小)
    [CF707D]Persistent Bookcase(离线,DFS)
    [CF707C]Pythagorean Triples(数学)
  • 原文地址:https://www.cnblogs.com/xinyuyuanm/p/2979651.html
Copyright © 2011-2022 走看看