How To Implement The Progress Dialog In Webview Before Loading An Image?
I have a webview in my app that has to load an image, it loads it fine however it takes a few seconds for it to display. So what i need to do is to display a progress dialog to
Solution 1:
You have not initialize your progress dialog,
progress= ProgressDialog.show(this, "Title","Message", true);or,
progress= newProgressDialog(getActivity());
progress.setMessage("Please wait...");
progress.setIndeterminate(false);
progress.setCancelable(false);
progress.show();
and you can call progress.dismiss() to hide the dialog
EDIT
View rootView = inflater.inflate(R.layout.fragment_maps, container, false);
WebView webview = (WebView)rootView.findViewById(R.id.webView2);
webview.getSettings().setJavaScriptEnabled(true);
webview.getSettings().setLoadWithOverviewMode(true);
webview.getSettings().setBuiltInZoomControls(true);
webview.getSettings().setUseWideViewPort(false);
webview.loadUrl("file:///android_asset/index1.html");
progress= newProgressDialog(getActivity());
webview.setWebViewClient(newWebViewClient(){
@OverridepublicbooleanshouldOverrideUrlLoading(WebView view, String url) {
progress.setMessage("Please wait...");
progress.setIndeterminate(false);
progress.setCancelable(false);
progress.show();
view.loadUrl(url);
returntrue;
}
@OverridepublicvoidonPageFinished(WebView view, final String url) {
progress.dismiss();
}
});
return rootView;
}
Solution 2:
I have used in my WebView that may helpful to you:
set WebChromeClient in onCreate() like
webView.setWebChromeClient(new MyWebChromeClient());
classMyWebChromeClientextendsWebChromeClient {
ProgressDialog pDialog;
publicMyWebChromeClient() {
// TODO Auto-generated constructor stub
pDialog = new ProgressDialog(YourActivity.this); //Use getActivity(); for Fragment
pDialog.setMessage("Loading...");
pDialog.setCancelable(false);
pDialog.setProgress(0);
pDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
}
publicvoidonProgressChanged(WebView view, int progress)
{
if(progress < 100 && !pDialog.isShowing()){
pDialog.show();
}
pDialog.setProgress(progress);
if(progress == 100) {
pDialog.dismiss();
}
}
}
Solution 3:
u can do something like this when ur loading resources
public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; }
publicvoidonLoadResource (WebView view, String url) {
if (progressDialog == null) {
progressDialog = new ProgressDialog(activity);
progressDialog.setMessage("Loading... ");
progressDialog.show();
}
}
Solution 4:
I made something similar to show a message when the page starts to loading and close it when it ends:
package com.veemesoft.radiostream.radiostream;
import android.app.Activity;
import android.app.ProgressDialog;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.view.View;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.ImageButton;
import android.widget.TextView;
publicclassWebViewActivityextendsActivity {
privateWebView webView;
ImageButton goBack;
TextView webViewTitle;
ProgressDialog progressDialog;
publicvoidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_web_view);
webViewTitle = (TextView) findViewById(R.id.web_view_title);
String webViewTitleString = this.getIntent().getStringExtra("web_view_title");
webViewTitle.setText(webViewTitleString);
goBack = (ImageButton) findViewById(R.id.go_back);
goBack.setOnClickListener(newView.OnClickListener() {
@OverridepublicvoidonClick(View v) {
goToMainActivity();
}
});
webView = (WebView) findViewById(R.id.webView);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setUseWideViewPort(false);
progressDialog = newProgressDialog(this);
webView.setWebViewClient(newWebViewClient() {
@OverridepublicvoidonPageStarted(WebView view, String url, Bitmap favicon) {
progressDialog.setMessage("Espere unos segundos...");
progressDialog.setIndeterminate(true);
progressDialog.setCancelable(false);
progressDialog.show();
}
@OverridepublicvoidonPageFinished(WebView view, final String url) {
progressDialog.dismiss();
}
});
String url = this.getIntent().getStringExtra("url");
webView.loadUrl(url);
}
privatevoidgoToMainActivity(){
finish();
}
}
Post a Comment for "How To Implement The Progress Dialog In Webview Before Loading An Image?"