CircleProgress is an Android library that provides circular, donut, and arc-shaped progress view components.
The library addresses the need for visually distinct progress indicators in Android applications beyond standard linear progress bars. It offers three specialized view types: CircleProgress for full circular progress displays, DonutProgress for ring-shaped progress with optional center content, and ArcProgress for partial arc progress indicators. Each view type supports customization through XML attributes and can be integrated into layouts using standard Android view inflation.
DonutProgress distinguishes itself by supporting inner drawables and VectorDrawables in its center, making it suitable for progress displays that need to combine visual feedback with additional imagery or icons. The library suits projects requiring non-standard progress visualization, particularly applications that benefit from circular or donut-shaped indicators for aesthetic or UX reasons. CircleProgress is appropriate for developers building Android applications targeting API level 21 and above who want ready-made progress components without implementing custom drawing code.
The project underwent significant modernization in its most recent major version, migrating to AndroidX and updating build tooling to current standards including AGP 8.x and Gradle 8.x. Performance improvements were made by replacing a busy-loop animation in ArcProgress with ValueAnimator, moving expensive RectF calculations out of the onDraw method in DonutProgress, and eliminating redundant Paint object recreation. The library added accessibility support through screen reader compatibility across all view types and changed CircleProgress progress values from integers to floats for finer-grained control. Build configuration was simplified by publishing through JitPack using maven-publish rather than previous distribution methods.