awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
dmytrodanylyk avatar

dmytrodanylyk/circular-progress-button

0
View on GitHub↗
5,749 stars·1,168 forks·Java·MIT·4 viewsdmytrodanylyk.com/pages/portfolio/circular-progress-button.html↗

Circular Progress Button

This is an Android button widget that morphs into a circular progress indicator during asynchronous operations. The core identity of the project is a custom UI component that transforms a standard button into a loading spinner, then reverts it upon task completion.

The implementation uses canvas-based morphing animation to transition between button and circular progress shapes, with property animation interpolation controlling the transformation over time. A state-driven view hierarchy switches between button and progress indicator layouts based on a finite state machine, while layer-based compositing separates the button background, progress arc, and icon into distinct drawable layers for independent animation control. The asynchronous task lifecycle binding hooks the progress animation start and completion to the lifecycle of a background thread.

The project provides a single primary capability: morphing a button into a progress indicator during an ongoing operation. The documentation covers the custom view drawing override and the overall animation system.

Features

  • Morphing Progress Buttons - Transforms a standard button into a circular loading spinner that shows an ongoing operation's progress.
  • Async Task Lifecycle Bindings - Hooks progress animation start and completion to the lifecycle of background threads or AsyncTasks.
  • Android Property Animators - Uses Android's ValueAnimator and ObjectAnimator to drive smooth, configurable property transitions on views.
  • Morphing Shape Animations - Animates the transition between button and circular progress shapes by drawing directly on a hardware-accelerated canvas.
  • Custom View Rendering - Overrides standard Android view measurement and drawing methods to implement custom rendering logic.
  • Circular Progress Indicators - Transforms a standard button into a circular progress animation while an asynchronous task runs, then reverts it upon completion.
  • UI Component Layer Compositing - Separates the button background, progress arc, and icon into distinct drawable layers for independent animation control.
  • View Hierarchy State Machines - Switches between button and progress indicator layouts based on a finite state machine controlling visibility and animation.
  • Buttons and Inputs - Button with integrated progress indicator.
  • Progress Indicators - Button that transitions into a circular progress indicator.

Star history

Star history chart for dmytrodanylyk/circular-progress-buttonStar history chart for dmytrodanylyk/circular-progress-button

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Open-source alternatives to Circular Progress Button

Similar open-source projects, ranked by how many features they share with Circular Progress Button.
  • ybq/android-spinkitybq avatar

    ybq/Android-SpinKit

    8,646View on GitHub↗

    Android-SpinKit is an Android animation library that provides a collection of animated loading spinner views for use as progress indicators during asynchronous operations. The library offers multiple predefined animation styles, including Circle, Wave, and DoubleBounce, which can be selected and displayed as standard Android View elements within an application's layout. The library distinguishes itself by being built entirely on the Android SDK's drawing and animation APIs, with no external dependencies required. Each spinner type implements a distinct animation state machine using Android's

    Javaandroid-loadinganimationloading
    View on GitHub↗8,646
  • castorflex/smoothprogressbarcastorflex avatar

    castorflex/SmoothProgressBar

    4,512View on GitHub↗

    SmoothProgressBar is an Android custom progress bar library designed to render customizable horizontal and circular indeterminate loading indicators. It functions as a reusable UI component and view extension used to display the status of background processes within Android applications. The library provides smooth animations and custom styles to create fluid loading states. It supports both linear and circular formats, allowing for specific colors and styles to match a mobile application's design system.

    Java
    View on GitHub↗4,512
  • lzyzsd/circleprogresslzyzsd avatar

    lzyzsd/CircleProgress

    3,800View on GitHub↗

    CircleProgress is a custom view library for Android that provides reusable UI widgets for rendering circular, donut, or arc-shaped progress indicators. It is designed to help developers visualize task completion status and data progress within native mobile application interfaces. The component allows for the display of custom text labels and inner graphical assets alongside the progress indicator. It functions by manually calculating paths and arcs on a canvas surface, translating progress percentages into geometric angles to ensure accurate positioning within a circular frame. The library

    Java
    View on GitHub↗3,800
  • hdodenhof/circleimageviewhdodenhof avatar

    hdodenhof/CircleImageView

    14,500View on GitHub↗

    CircleImageView is a custom Android UI component that renders rectangular images as perfect circles with smooth antialiased edges. It functions as an extension of the native Android image view, overriding the drawing pipeline to provide specialized circular masking. The component specifically supports the creation of user profile avatars by providing customizable borders, internal padding, and background fill colors. These visual styles can be defined through custom XML attributes during the view initialization process.

    Java
    View on GitHub↗14,500
See all 30 alternatives to Circular Progress Button→

Frequently asked questions

What does dmytrodanylyk/circular-progress-button do?

This is an Android button widget that morphs into a circular progress indicator during asynchronous operations. The core identity of the project is a custom UI component that transforms a standard button into a loading spinner, then reverts it upon task completion.

What are the main features of dmytrodanylyk/circular-progress-button?

The main features of dmytrodanylyk/circular-progress-button are: Morphing Progress Buttons, Async Task Lifecycle Bindings, Android Property Animators, Morphing Shape Animations, Custom View Rendering, Circular Progress Indicators, UI Component Layer Compositing, View Hierarchy State Machines.

What are some open-source alternatives to dmytrodanylyk/circular-progress-button?

Open-source alternatives to dmytrodanylyk/circular-progress-button include: ybq/android-spinkit — Android-SpinKit is an Android animation library that provides a collection of animated loading spinner views for use… lzyzsd/circleprogress — CircleProgress is a custom view library for Android that provides reusable UI widgets for rendering circular, donut,… castorflex/smoothprogressbar — SmoothProgressBar is an Android custom progress bar library designed to render customizable horizontal and circular… mikepenz/materialdrawer — MaterialDrawer is a navigation drawer library and side menu framework for Android applications. It provides a Material… hdodenhof/circleimageview — CircleImageView is a custom Android UI component that renders rectangular images as perfect circles with smooth… ongakuer/circleindicator — CircleIndicator is a custom Android UI component that functions as a circular page progress indicator. It provides a…