2017-06-15 5 views
-1

WebViewClientを使用してWebページをロードしています。コードの進行状況を表示したいと思います。私のコードは進捗状況を徐々にロードしていません。それは100%の進歩しか示さない。ウェブページの読み込み時間に基づいて進捗状況を設定するにはどうすればよいですか?ProgressBarを使用してWebViewClientを表示する

私の目的のためには、WebViewにのみ「https://www.google.com」をロードする必要があります。助けてください。ありがとうございました。

アクティビティファイル

public class MainActivity extends Activity { 

private WebView webView; 
private ProgressBar progressBar; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    int vc = Color.parseColor("#feca01"); 


    progressBar = (ProgressBar) findViewById(R.id.determinateBar); 
    progressBar.getProgressDrawable().setColorFilter(
      vc, android.graphics.PorterDuff.Mode.SRC_IN); 
    webView = (WebView) findViewById(R.id.webView); 
    webView.setWebViewClient(new MyBrowser()); 
    webView.getSettings().setJavaScriptEnabled(true); 
    webView.loadUrl("http://deelay.me/5000/http://www.google.com"); 

} 

private class MyBrowser extends WebViewClient { 

    @Override 
    public void onPageStarted(WebView view, String url, Bitmap favicon) 
    { 
     super.onPageStarted(view, url, favicon); 
     progressBar.setVisibility(View.VISIBLE); 
     progressBar.incrementProgressBy(10); 

    } 

    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) { 
     view.loadUrl(url); 
     return true; 
    } 

    @Override 
    public void onPageFinished(WebView view, String url) { 
     super.onPageFinished(view, url); 
     progressBar.setVisibility(View.VISIBLE); 
     // progressBar.setProgress(0); 
    } 
} 

}

XMLファイル

`

<ProgressBar 
    android:id="@+id/determinateBar" 
    style="@android:style/Widget.ProgressBar.Horizontal" 
    android:layout_width="400dp" 
    android:padding="0dp" 
    android:layout_height="2dp" /> 

<WebView 
    android:layout_height="match_parent" 
    android:id="@+id/webView" 
    android:layout_weight="0.91" 
    android:layout_width="match_parent" 
    android:padding="0dp" 
    /> 

` 012:コードを以下に示します。

+0

参照してくださいこれを試す[この](https://stackoverflow.com - あなただけ呼び出すことによって、あなたのWebViewをロードする必要があり、これを使用して

/questions/16849347/additional-a-progress-dialog-in-a-webview)の回答です。 –

+0

リンクを参照してください: https://stackoverflow.com/questions/25911185/set-progress-bar-progress-color-programaticallyあなたの要件に合っているかどうかを確認してください –

+0

@KunalChawla、それは動作しませんでした。 : - \ – sairajreddy

答えて

1

私の友人

WebView webView; 
ProgressBar progressBar; 

webView = (WebView) findViewById(R.id.web); 
webView.getSettings().setJavaScriptEnabled(true); 
webView.getSettings().setSupportZoom(true); 
webView.getSettings().setBuiltInZoomControls(true); 
webView.loadUrl(url); 

progressBar = (ProgressBar) findViewById(R.id.progressbar); 
progressBar.setMax(100); 
progressBar.setProgress(1); 

webView.setWebChromeClient(new WebChromeClient() { 
     public void onProgressChanged(WebView view, int progress) { 
      progressBar.setProgress(progress); 
     } 
    }); 
     webView.setWebViewClient(new WebViewClient() { 

     @Override 
     public void onPageStarted(WebView view, String url, Bitmap favicon) { 
      super.onPageStarted(view, url, favicon); 
      progressBar.setVisibility(View.VISIBLE); 


     } 



     @Override 
     public boolean shouldOverrideUrlLoading(WebView view, String url) { 
      view.loadUrl(url); 
      return true; 
     } 

     @Override 
     public void onPageFinished(WebView view, String url) { 

      progressBar.setVisibility(View.GONE); 
     } 
    }); 

<WebView 
    android:id="@+id/web" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" /> 

<ProgressBar 
    android:layout_marginTop="-7dp" 
    android:id="@+id/progressbar" 
    style="?android:attr/progressBarStyleHorizontal" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="true" 
    android:background="@android:color/transparent" 
    android:indeterminate="false" 
    android:max="100" 
    android:progress="1" 
    android:theme="@style/ProgressbarTheme" /> 
+0

これは完璧です!大変感謝しています:) – sairajreddy

+0

大歓迎@sairajreddy –

0

FinestWebViewを試してみてください。

new FinestWebView.Builder(this).titleDefault("The Finest Artist") 
       .show("http://thefinestartist.com"); 

enter image description here

+0

本当に面白いです。今すぐ試してみましょう!ありがとう:) – sairajreddy

+0

これは素晴らしいオプションです、それは働いた。多くのありがとう:) – sairajreddy

関連する問題