加载时Android Webview进度条

时间:2016-02-26 12:13:10

标签: android

网站加载网站时我想要进度条。

我搜索的解决方案不满意。

请有人帮帮我吗?

当我点击网页中的任何链接时,它会完全加载,但我想知道它加载了多少。因此,在加载

时,我需要在webview顶部显示进度条

3 个答案:

答案 0 :(得分:0)

创建进度视图,当加载webview时(使用onProgressChanged),设置当前进度,完成后隐藏它。

这很简单,那里有解决方案。

编辑:IMO这是Android WebView progress bar

的副本

答案 1 :(得分:0)

以下是如何使用webview客户端的示例代码我使用gif imageview你可以使用进度条代替它。

public class myWebClient extends WebViewClient {
    @Override
    public void onPageStarted(WebView view, String url, Bitmap favicon) {

        super.onPageStarted(view, url, favicon);
    }

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {

        ivGif.setBackgroundResource(R.drawable.anim_set_frames);
        AnimationDrawable progressAnimation = (AnimationDrawable) ivGif.getBackground();
        progressAnimation.start();
        ivGif.setVisibility(View.VISIBLE);
        view.loadUrl(url);
        return true;

    }

    @Override
    public void onPageFinished(WebView view, String url) {
        super.onPageFinished(view, url);
        ivGif.setVisibility(View.GONE);
    }
}




    webViewBooking.setWebViewClient(new myWebClient());
    webViewBooking.getSettings().setJavaScriptEnabled(true);
    webViewBooking.loadUrl(payment_url);

答案 2 :(得分:-1)

简单的方法是这样的;

     public class MyActivity extends Activity {
     private static final int PROGRESS = 0x1;

     private ProgressBar mProgress;
     private int mProgressStatus = 0;

     private Handler mHandler = new Handler();

     protected void onCreate(Bundle icicle) {
         super.onCreate(icicle);

         setContentView(R.layout.progressbar_activity);

         mProgress = (ProgressBar) findViewById(R.id.progress_bar);

         // Start lengthy operation in a background thread
         new Thread(new Runnable() {
             public void run() {
                 while (mProgressStatus < 100) {
                     mProgressStatus = doWork();

                     // Update the progress bar
                     mHandler.post(new Runnable() {
                         public void run() {
                             mProgress.setProgress(mProgressStatus);
                         }
                     });
                 }
             }
         }).start();
     }
 }