Progress Bar
Progress Bar is helpful for check on downloading process or loading any content to open in our app. Let us see an Example for Progress Bar.
activity_main.xml
Drag button from pallette, and look like example below
MainActivity.java
Add Progress Bar to activity file with the following methods
package com.example.codebridgeprogressbarexample;
import android.app.Activity;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.os.Handler;
import android.widget.Button;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
public class MainActivity extends Activity {
Button btnProgressBar;
ProgressDialog progressDialog;
private int progressBarStatus = 0;
private Handler progressBarHandler = new Handler();
private long fileSize = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
addListenerOnButtonClick();
}
public void addListenerOnButtonClick() {
btnProgressBar= (Button) findViewById(R.id.btn_download);
btnProgressBar.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
// creating progress bar dialog
progressDialog= new ProgressDialog(v.getContext());
progressDialog.setCancelable(true);
progressDialog.setMessage("File downloading ...");
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
progressDialog.setProgress(0);
progressDialog.setMax(100);
progressDialog.show();
//reset progress bar and filesize status
progressBarStatus = 0;
fileSize = 0;
new Thread(new Runnable() {
public void run() {
while (progressBarStatus < 100) { // performing operation progressBarStatus = doOperation(); try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();} // Updating the progress bar progressBarHandler.post(new Runnable() { public void run() { progressDialog.setProgress(progressBarStatus); } }); } // performing operation if file is downloaded, if (progressBarStatus >= 100) {
// sleeping for 1 second after operation completed
try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}
// close the progress bar dialog
progressDialog.dismiss();
}
}
}).start();
}//end of onClick method
});
}
// checking how much file is downloaded and updating the filesize
public int doOperation() {
//The range of ProgressDialog starts from 0 to 10000
while (fileSize <= 10000) {
fileSize++;
if (fileSize == 1000) {
return 10;
} else if (fileSize == 2000) {
return 20;
} else if (fileSize == 3000) {
return 30;
} else if (fileSize == 4000) {
return 40;//you can add more else if
} else{
return 100;
}
}//end of while
return 100;
}//end of doOperation
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
Leave A Comment