Android Studio - Different types of Progress Bars
activity_main.xml
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ffffff"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical"
android:padding="16dp">
<TextView
android:id="@+id/textView17"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="\u00A9 itinsidenews.com"
android:textAlignment="center"
android:textSize="18sp"
android:textStyle="bold" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Determinate" />
<ProgressBar
android:id="@+id/progressDeterminate"
style="@style/Widget.AppCompat.ProgressBar.Horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:indeterminate="false"
android:max="100"
android:progress="10" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Indeterminate" />
<ProgressBar
android:id="@+id/progressIndeterminate"
style="@style/Widget.AppCompat.ProgressBar.Horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:indeterminate="true" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Buffer" />
<ProgressBar
android:id="@+id/progressBuffered"
style="@style/Widget.AppCompat.ProgressBar.Horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:indeterminate="false"
android:max="100"
android:progress="10"
android:secondaryProgress="20" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Indeterminate and Determinate" />
<ProgressBar
android:id="@+id/progressIndeterminateDeterminate"
style="@style/Widget.AppCompat.ProgressBar.Horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:indeterminate="false"
android:max="100"
android:progress="20" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:orientation="horizontal">
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:layout_weight="1"
android:gravity="center"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="15dp"
android:text="Indeterminate" />
<ProgressBar
style="@style/Widget.AppCompat.ProgressBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:indeterminate="true"
android:progressDrawable="@drawable/circular_progress_bar" />
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_margin="10dp"
android:layout_weight="1"
android:gravity="center"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="15dp"
android:text="Determine" />
<ProgressBar
android:id="@+id/progressIndeterminateCircular"
style="@style/Widget.AppCompat.ProgressBar.Horizontal"
android:layout_width="?attr/actionBarSize"
android:layout_height="?attr/actionBarSize"
android:background="@drawable/circle_shape"
android:indeterminate="false"
android:max="100"
android:progress="0"
android:progressDrawable="@drawable/circular_progress_bar" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
</LinearLayout>
MainActivity.java
package com.progressbar.example.mainactivity;
import android.os.Bundle;
import android.os.Handler;
import android.widget.ProgressBar;
import androidx.appcompat.app.AppCompatActivity;
import com.progressbar.example.R;
public class MainActivity extends AppCompatActivity {
private ProgressBar progressDeterminate;
private ProgressBar progressIndeterminateCircular;
private ProgressBar progressBuffered;
private ProgressBar progressIndeterminateDeterminate;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initComponent();
}
private void initComponent() {
progressDeterminate = (ProgressBar) findViewById(R.id.progressDeterminate);
progressIndeterminateCircular = (ProgressBar) findViewById(R.id.progressIndeterminateCircular);
progressBuffered = (ProgressBar) findViewById(R.id.progressBuffered);
progressIndeterminateDeterminate = (ProgressBar) findViewById(R.id.progressIndeterminateDeterminate);
startDeterminateProgress();
startBufferedProgress();
startBufferedSecondaryProgress();
startIndeterminateDeterminateProgress();
startDeterminateCircularProgress();
}
private void startDeterminateProgress() {
final Handler mHandler = new Handler();
Runnable runnable = new Runnable() {
public void run() {
int progress = progressDeterminate.getProgress() + 10;
progressDeterminate.setProgress(progress);
if (progress > 100) {
progressDeterminate.setProgress(0);
}
mHandler.postDelayed(this, 1000);
}
};
mHandler.post(runnable);
}
private void startBufferedProgress() {
final Handler mHandler = new Handler();
Runnable runnable = new Runnable() {
public void run() {
int progress = progressBuffered.getProgress() + 5;
progressBuffered.setProgress(progress);
if (progress > 100) {
progressBuffered.setProgress(0);
}
mHandler.postDelayed(this, 500);
}
};
mHandler.postDelayed(runnable, 500);
}
private void startBufferedSecondaryProgress() {
final Handler mHandler = new Handler();
Runnable runnable = new Runnable() {
public void run() {
int progress = progressBuffered.getSecondaryProgress() + 5;
progressBuffered.setSecondaryProgress(progress);
if (progress > 100 && progress_buffered.getProgress() <= 10) {
progressBuffered.setSecondaryProgress(0);
}
mHandler.postDelayed(this, 250);
}
};
mHandler.post(runnable);
}
private void startIndeterminateDeterminateProgress() {
final Handler mHandler = new Handler();
Runnable runnable = new Runnable() {
public void run() {
if (progressIndeterminateDeterminate.isIndeterminate()) {
progressIndeterminateDeterminate.setIndeterminate(false);
mHandler.postDelayed(this, 1000);
} else {
int progress = progressIndeterminateDeterminate.getProgress() + 20;
progressIndeterminateDeterminate.setProgress(progress);
if (progress > 100) {
progress_indeterminate_determinate.setProgress(0);
progressIndeterminateDeterminate.setIndeterminate(true);
mHandler.postDelayed(this, 4000);
} else {
mHandler.postDelayed(this, 1000);
}
}
}
};
mHandler.post(runnable);
}
private void startDeterminateCircularProgress() {
final Handler mHandler = new Handler();
Runnable runnable = new Runnable() {
public void run() {
int progress = progressIndeterminateCircular.getProgress() + 10;
progressIndeterminateCircular.setProgress(progress);
if (progress > 100) {
progressIndeterminateCircular.setProgress(0);
}
mHandler.postDelayed(this, 1000);
}
};
mHandler.post(runnable);
}
}
Output
Projects with Source Code + Video Tutorials
You can download our Java and Android Studio Projects with Source Code and Video Tutorials.
Modern Login and Register screen UI design
Online Quiz Application using Firebase and Admob
Modern Splash Screen with Animations - 01
If you have any Questions or Queries
You can mail us at info.learnoset@gmail.com
Follow us to learn Coding and get in touch with new Technologies.