Мне нужен индикатор выполнения при загрузке веб-сайта в веб-просмотре.

Я искал решение, но не удовлетворен.

Пожалуйста, помогите мне?

Когда я нажимаю любую ссылку на веб-странице, она загружается отлично, но я хочу знать, сколько она загружена. Итак, мне нужен индикатор выполнения в верхней части веб-просмотра при загрузке

0
Bala Raja 26 Фев 2016 в 15:13

3 ответа

Лучший ответ

Создайте представление прогресса, и когда веб-просмотр загружается (используя onProgressChanged), установите текущий прогресс, а когда закончите, скройте его.

Это так просто, и для этого есть решения.

Изменить: IMO это дубликат индикатора выполнения Android WebView

0
Community 23 Май 2017 в 11:45

Вот пример кода, как вы можете использовать клиент веб-просмотра для этого. Я использовал gif-изображение, вы можете использовать вместо него индикатор выполнения.

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);
0
Ajay Pandya 26 Фев 2016 в 12:29

Простой способ такой:

     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();
     }
 }
-1
Fuat ÖZERGİL 26 Фев 2016 в 12:22