lopspower/CircularProgressBar
lopspower/CircularProgressBar has 1,806 GitHub stars and 225 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-08 01:18 UTC. Last push 2023-04-17.
Create circular ProgressBar in Android ⭕
Measured star growth
- in 24h
- 0
- in 7 days
- Collecting history
- in 15 days
- Collecting history
- in 1 month
- Collecting history
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
Original
CircularProgressBar
This is an Android project allowing to realize a circular ProgressBar in the simplest way possible.
USAGE
To make a circular ProgressBar add CircularProgressBar in your layout XML and add CircularProgressBar library in your project or you can also grab it via Gradle:
implementation 'com.mikhaellopez:circularprogressbar:3.1.0'
XML
<com.mikhaellopez.circularprogressbar.CircularProgressBar
android:id="@+id/circularProgressBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:cpb_background_progressbar_color="#b6bbd8"
app:cpb_background_progressbar_width="5dp"
app:cpb_progress_direction="to_right"
app:cpb_progressbar_color="#3f51b5"
app:cpb_progressbar_width="10dp"
app:cpb_round_border="false" />
You must use the following properties in your XML to change your CircularProgressBar.
| Properties | Type | Default |
|---|---|---|
app:cpb_progress |
integer | 0 |
app:cpb_progress_max |
integer | 100 |
app:cpb_indeterminate_mode |
boolean | false |
app:cpb_progressbar_color |
color | BLACK |
app:cpb_progressbar_color_start |
color | cpb_progressbar_color |
app:cpb_progressbar_color_end |
color | cpb_progressbar_color |
app:cpb_progressbar_color_direction |
left_to_right, right_to_left, top_to_bottom or bottom_to_top | left_to_right |
app:cpb_progressbar_width |
dimension | 7dp |
app:cpb_background_progressbar_color |
color | GRAY |
app:cpb_background_progressbar_color_start |
color | GRAY |
app:cpb_background_progressbar_color_end |
color | GRAY |
app:cpb_background_progressbar_color_direction |
left_to_right, right_to_left, top_to_bottom or bottom_to_top | left_to_right |
app:cpb_background_progressbar_width |
dimension | 3dp |
app:cpb_round_border |
boolean | false |
app:cpb_start_angle |
float | 0f (=top) |
app:cpb_progress_direction |
to_right or to_left | to_right |
KOTLIN
val circularProgressBar = findViewById<CircularProgressBar>(R.id.yourCircularProgressbar)
circularProgressBar.apply {
// Set Progress
progress = 65f
// or with animation
setProgressWithAnimation(65f, 1000) // =1s
// Set Progress Max
progressMax = 200f
// Set ProgressBar Color
progressBarColor = Color.BLACK
// or with gradient
progressBarColorStart = Color.GRAY
progressBarColorEnd = Color.RED
progressBarColorDirection = CircularProgressBar.GradientDirection.TOP_TO_BOTTOM
// Set background ProgressBar Color
backgroundProgressBarColor = Color.GRAY
// or with gradient
backgroundProgressBarColorStart = Color.WHITE
backgroundProgressBarColorEnd = Color.RED
backgroundProgressBarColorDirection = CircularProgressBar.GradientDirection.TOP_TO_BOTTOM
// Set Width
progressBarWidth = 7f // in DP
backgroundProgressBarWidth = 3f // in DP
// Other
roundBorder = true
startAngle = 180f
progressDirection = CircularProgressBar.ProgressDirection.TO_RIGHT
}
Listener (in Kotlin)
circularProgressBar.onProgressChangeListener = { progress ->
// Do something
}
circularProgressBar.onIndeterminateModeChangeListener = { isEnable ->
// Do something
}
JAVA
CircularProgressBar circularProgressBar = findViewById(R.id.yourCircularProgressbar);
// Set Progress
circularProgressBar.setProgress(65f);
// or with animation
circularProgressBar.setProgressWithAnimation(65f, 1000); // =1s
// Set Progress Max
circularProgressBar.setProgressMax(200f);
// Set ProgressBar Color
circularProgressBar.setProgressBarColor(Color.BLACK);
// or with gradient
circularProgressBar.setProgressBarColorStart(Color.GRAY);
circularProgressBar.setProgressBarColorEnd(Color.RED);
circularProgressBar.setProgressBarColorDirection(CircularProgressBar.GradientDirection.TOP_TO_BOTTOM);
// Set background ProgressBar Color
circularProgressBar.setBackgroundProgressBarColor(Color.GRAY);
// or with gradient
circularProgressBar.setBackgroundProgressBarColorStart(Color.WHITE);
circularProgressBar.setBackgroundProgressBarColorEnd(Color.RED);
circularProgressBar.setBackgroundProgressBarColorDirection(CircularProgressBar.GradientDirection.TOP_TO_BOTTOM);
// Set Width
circularProgressBar.setProgressBarWidth(7f); // in DP
circularProgressBar.setBackgroundProgressBarWidth(3f); // in DP
// Other
circularProgressBar.setRoundBorder(true);
circularProgressBar.setStartAngle(180f);
circularProgressBar.setProgressDirection(CircularProgressBar.ProgressDirection.TO_RIGHT);
Listener (in Java)
circularProgressBar.setOnIndeterminateModeChangeListener(isEnable -> {
// Do something
return Unit.INSTANCE;
});
circularProgressBar.setOnProgressChangeListener(progress -> {
// Do something
return Unit.INSTANCE;
});
SUPPORT ❤️
Find this library useful? Support it by joining stargazers for this repository ⭐️
And follow me for my next creations 👍
LICENCE
CircularProgressBar by Lopez Mikhael is licensed under a Apache License 2.0. Based on a work at Pedramrn/CircularProgressBar.
Explore related projects
codecrafters-io/build-your-own-x
Master programming by recreating your favorite technologies from scratch.
560,847 starspublic-apis/public-apis
A collective list of free APIs
497,093 starsmorluto/rea
Reverse engineer anything with agents, from app behavior down to native binaries.
441,612 starsopenclaw/openclaw
The AI that really does things. Any OS. Any Platform. The lobster way. 🦞
394,159 stars