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