CircularProgressIndicator
Customizable circular progress indicator.
How to use
Add view to your layout:
<antonkozyriatskyi.circularprogressindicator.CircularProgressIndicator
android:id="@+id/circular_progress"
android:layout_width="200dp"
android:layout_height="200dp"
android:layout_gravity="center"
android:layout_marginBottom="8dp"
android:layout_marginTop="8dp"
app:progressColor="@color/colorPrimary"
app:progressBackgroundColor="#efefefef"
app:progressStrokeWidth="8dp"
app:drawDot="true"
app:dotColor="@color/colorAccent"
app:dotWidth="16dp"
app:textSize="24sp"
app:textColor="@color/colorPrimaryDark"
app:useProgressTextDelimiter="true"
app:progressTextDelimiter="."
app:progressTextPrefix="$"
app:progressTextSuffix="%" />
Since all attributes have default values, you can specify none of them. Thus following code also works:
<antonkozyriatskyi.circularprogressindicator.CircularProgressIndicator
android:id="@+id/circular_progress"
android:layout_width="200dp"
android:layout_height="200dp"
android:layout_gravity="center"
android:layout_marginBottom="8dp"
android:layout_marginTop="8dp" />
Than find it in code and set progress:
CircularProgressIndicator circularProgress = findViewById(R.id.circular_progress);
// you can set max and current progress values individually
circularProgress.setMaxProgress(10000);
circularProgress.setCurrentProgress(5000);
// or all at once
circularProgress.setProgress(5000, 10000);
// you can get progress values using following getters
circularProgress.getProgress() // returns 5000
circularProgress.getMaxProgress() // returns 10000
Attributes
Description | XML | Java | Default value |
---|---|---|---|
Progress color | app:progressColor |
setter: setProgressColor(color) getter: getProgressColor() |
#3f51b5 |
Progress background color | app:progressBackgroundColor |
setter: setProgressBackgroundColor(color) getter: getProgressBackgroundColor() |
#e0e0e0 |
Width of progress stroke | app:progressStrokeWidth |
setters: setProgressStrokeWidthDp(widthInDp) or setProgressStrokeWidthPx(widthInPx) getter: getProgressStrokeWidth() (returns width in pixels) |
8dp |
Whether to draw dot. true or false |
app:drawDot |
setter: setShouldDrawDot(shoulDrawDot) getter: isDotEnabled() |
true |
Dot color | app:dotColor |
setter: setDotColor(dotColor) getter: getDotColor() |
same as progress color |
Dot width | app:dotWidth |
setters: setDotWidthDp(widthInDp) or setDotWidthPx(widthInPx) getter: getDotWidth() (returns width in pixels) |
same as progress stroke width |
Progress text size | app:textSize |
setters: setTextSizeSp(sizeInSp) or setTextSizePx(sizeInPx) getter: getTextSize() (returns size in pixels) |
24sp |
Progress text color | app:textColor |
setter: setTextColor(textColor) getter: getTextColor() |
same as progress color |
Whether to use delimiter or not. true or false |
app:useProgressTextDelimiter |
setter: setShouldUseDelimiter(shouldUseDelimiter) getter: isTextDelimiterEnabled() |
true |
The delimiter to use in progress text | app:progressTextDelimiter |
setter: setProgressTextDelimiter(delimiter) getter: getProgressTextDelimiter() |
, |
Prefix for progress text | app:progressTextPrefix |
setter: setProgressTextPrefix(prefix) getter: getProgressTextPrefix() |
null (disabled) |
Suffix for progress text | app:progressTextSuffix |
setter: setProgressTextSuffix(suffix) getter: getProgressTextSuffix() |
null (disabled) |
Download using Gradle
Add this in your root build.gradle
at the end of repositories
in allprojects
section:
allprojects {
repositories {
maven { url 'https://jitpack.io' }
}
}
Then add this dependency to your module-level build.gradle
in dependencies
section:
implementation 'com.github.antonKozyriatskyi:CircularProgressIndicator:1.0.5'