An Android library for creating highly configurable animated circular wheel charts, inspired by Google Fit's visual style.
DecoView is an Android library for creating animated, arc-based circular charts. It solves the problem of building visually engaging progress indicators and data visualizations similar to Google Fit's circular wheel, offering extensive customization without requiring complex custom drawing code.
Android developers who need to implement animated circular progress charts, fitness trackers, or data dashboards within their mobile applications.
Developers choose DecoView for its ease of integration, powerful animation capabilities, and high degree of visual customization, allowing them to create professional-looking circular charts that match their app's design language with minimal effort.
DecoView: Android arc based animated charting library
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
The SeriesItem.Builder allows precise control over arc angles, gravity, line widths, colors, shadows, and edge details, enabling charts to match any UI design, as detailed in the README examples.
Supports multiple event types (move, show, hide, color change) with custom interpolators and durations, allowing complex animated sequences like those in the Google Fit-style samples.
DecoView subclasses Android View, so it can be added via XML layouts and controlled in code with minimal boilerplate, similar to standard Android components.
Offers full circles, horseshoes, semi-circles, and donut-style charts with configurable orientation through the configureAngles method, providing versatility for different design needs.
Adding shadows requires disabling hardware acceleration, which can degrade performance on complex views, as explicitly warned in the README for Android 4.0-4.3 and beyond.
Labels are not supported for series moving anti-clockwise, restricting design flexibility and requiring workarounds for certain animations.
Setting up complex charts involves lengthy Builder chains (e.g., SeriesItem.Builder with many setter methods), which can be cumbersome for simple use cases.