Present your progress bars in arc mode with information and total control.

Overview

Devlight


ArcProgressStackView

Present your progress bars in arc mode with information and total control.

Android Arsenal       Android       Download       License       Codacy

You can check the sample app here.

Warn

This library is not more supported. 
If you want to add new feature or fix a bug, grab source code and do it. 
If you think your fix or feature would be useful to other developers, 
I can add link of your repository to this README file. 
Thank you for using our libraries.

Download

You can download a .aar from GitHub's releases page.

Or use Gradle:

compile 'devlight.io:arcprogressstackview:1.0.4'

Or Maven:

<dependency>
  <groupId>devlight.io</groupId>
  <artifactId>arcprogressstackview</artifactId>
  <version>1.0.4</version>
  <type>pom</type>
</dependency>

Or Ivy:

<dependency org='devlight.io' name='arcprogressstackview' rev='1.0.4'>
  <artifact name='$AID' ext='pom'></artifact>
</dependency>

Android SDK Version

ArcProgressStackView requires a minimum SDK version of 8, but if you want animation and shadow support it requires a minimum SDK version of 11.

Sample

Parameters

For APSV you can set such parameters as:

  • models:
    allows you to set APSV models, where you set title, progress and colors. Can be set up only via code.

  • animation:
    allows you to animate progress with func call or with touch event.

  • shadow:
    allows you to add shadow to your progress models, but remember, the shadow need LAYER_TYPE_SOFTWARE, so it decrease FPS.

  • round corners:
    allows you to set round corners to models.

  • drag/seek:
    allows you to make your progress model seek like.

  • typeface:
    allows you to set custom typeface.

  • text color:
    allows you to set text(title and progress indicator) color.

  • shadow distance:
    allows you to set shadow distance.

  • shadow angle:
    allows you to set shadow angle.

  • shadow radius:
    allows you to set shadow radius.

  • shadow color:
    allows you to set shadow color.

  • animation duration:
    allows you to set animation duration.

  • animation listener:
    allows you to set animation listener.

  • interpolator:
    allows you to set interpolator to animation.

  • draw width:
    allows you to set draw width in fraction mode(e.g. 55%) or dimension mode.

  • model offset:
    allows you to set model offset(positive or negative).

  • model background:
    allows you to set model background track from start angle to sweep angle.

  • start angle:
    allows you to set start angle of models.

  • sweep angle:
    allows you to set sweep angle of models.

  • progress indicator orientation:
    allows you to set progress indicator orientation.

  • preview colors:
    allows you to set preview colors, which generate count of models equals to count of colors.

  • preview background:
    allows you to set models background preview color.

Tips

All angle variables can only be positive and be in range from 0 to 360 degrees.
The size of View automatically set up in square mode.

Init

Check out in code init:

final ArrayList<ArcProgressStackView.Model> models = new ArrayList<>();
models.add(new ArcProgressStackView.Model("Circle", 25, bgColors[0], mStartColors[0]));
models.add(new ArcProgressStackView.Model("Progress", 50, bgColors[1], mStartColors[1]));
models.add(new ArcProgressStackView.Model("Stack", 75, bgColors[2], mStartColors[2]));
models.add(new ArcProgressStackView.Model("View", 100, bgColors[3], mStartColors[3]));

final ArcProgressStackView arcProgressStackView = (ArcProgressStackView) findViewById(R.id.apsv);
arcProgressStackView.setModels(models);

Other methods check out in sample.

And XML init:

<devlight.io.library.ArcProgressStackView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:apsv_rounded="true"
    app:apsv_shadowed="true"
    app:apsv_animated="true"
    app:apsv_dragged="true"
    app:apsv_leveled="true"
    app:apsv_typeface="fonts/agency.ttf"
    app:apsv_text_color="#fff"
    app:apsv_shadow_distance="5dp"
    app:apsv_shadow_angle="90"
    app:apsv_shadow_radius="10dp"
    app:apsv_shadow_color="#000"
    app:apsv_animation_duration="1000"
    app:apsv_interpolator="@android:anim/bounce_interpolator"
    app:apsv_draw_width="75%"
    app:apsv_model_offset="5dp"
    app:apsv_model_bg_enabled="true"
    app:apsv_start_angle="270"
    app:apsv_sweep_angle="360"
    app:apsv_indicator_orientation="vertical"
    app:apsv_preview_colors="@array/default_preview"
    app:apsv_preview_bg="#ccc"/>

Getting Help

To report a specific problem or feature request, open a new issue on Github.

Credits

Ron Evgeniy Virgil Pana Gleb Kuznetsov

Author

Created by Basil Miller - @gigamole

Company

Facebook     Twitter     LinkedIn

Created by Basil Miller - @gigamole

Here you can see open source work developed by Devlight LLC.
This and another works is an exclusive property of Devlight LLC.

If you want to use this library in applications which will be available on Google Play, please report us or author of the library about it.

Whether you're searching for a new partner or trusted team for creating your new great product we are always ready to start work with you.

You can contact us: [email protected] or [email protected].
Thanks in advance.

Devlight LLC, 2016
devlight.io

Comments
  • ArcProgressStackView.animateProgress() to animate only a specific model

    ArcProgressStackView.animateProgress() to animate only a specific model

    Hi, I am currently using 2 models and tracking two different values. I noticed that once I change the value on one of the model and call animateProgress(), both of them animate. I had a look at the demo app for some guidance, but couldn't find anything relevant. Is it possible to have a model.animateProgress() or animateProgress(model)?

    Note: If I don't call the animateProgress, they work fine and each updates independently.

    Also this is an awesome library :+1: Thanks

    help wanted 
    opened by vysakhvasanth 4
  • ArcProgressStackView is being redrawn constantly

    ArcProgressStackView is being redrawn constantly

    Whenever there is ArcProgressStackView with Model attached to it, it's being constantly redrawn. And one of my devices' log is flooded with messages like this:

    D/Surface: Surface::setBuffersDimensions(this=0x7faee0d400,w=1080,h=1920)

    This can be seen even in example app. However, on other devices there's no such messages but if you enable 'hardware layers updates' or 'gpu view updates' in developer options, you'll see exactly the same thing - ArcProgressStackView is flashed all the time.

    enhancement question 
    opened by qwertyfinger 3
  • help..

    help..

    I want to add this library in my project but when i added dependency it give me error so please can u tell me where i have to write this i think i am adding in a wrong way.. reply as soon as possible

    help wanted 
    opened by divya2392 2
  • A little bug when using in floatwindow

    A little bug when using in floatwindow

    opened by luzhzhsoft 2
  • NPE shows up when initializing component

    NPE shows up when initializing component

    I am using ArcProgressiveStackView in two different fragments. In the first one everything works fine, but in the second one I get this stacktrace when my view is initialized :

    12-18 11:04:09.093 4184-4184 W/System.err: java.lang.NullPointerException 12-18 11:04:09.093 4184-4184 W/System.err: at android.graphics.Typeface.nativeCreateFromAsset(Native Method) 12-18 11:04:09.093 4184-4184 W/System.err: at android.graphics.Typeface.createFromAsset(Typeface.java:149) 12-18 11:04:09.093 4184-4184 W/System.err: at devlight.io.library.ArcProgressStackView.setTypeface(ArcProgressStackView.java:594) 12-18 11:04:09.093 4184-4184 W/System.err: at devlight.io.library.ArcProgressStackView.(ArcProgressStackView.java:212) 12-18 11:04:09.093 4184-4184 W/System.err: at devlight.io.library.ArcProgressStackView.(ArcProgressStackView.java:179) 12-18 11:04:09.093 4184-4184 W/System.err: at java.lang.reflect.Constructor.constructNative(Native Method) 12-18 11:04:09.093 4184-4184 W/System.err: at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 12-18 11:04:09.093 4184-4184 W/System.err: at android.view.LayoutInflater.createView(LayoutInflater.java:595) 12-18 11:04:09.093 4184-4184 W/System.err: at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:697) 12-18 11:04:09.093 4184-4184 W/System.err: at android.view.LayoutInflater.rInflate(LayoutInflater.java:756) 12-18 11:04:09.093 4184-4184 W/System.err: at android.view.LayoutInflater.inflate(LayoutInflater.java:492) 12-18 11:04:09.093 4184-4184 W/System.err: at android.view.LayoutInflater.inflate(LayoutInflater.java:397) 12-18 11:04:09.093 4184-4184 W/System.err: at <...>.MyFragment.onCreateView(MyFragment.java:37)

    This is not causing any issues for me, but I am not using the text labels that may be impacted by this error. My fonts are located under res/font.

    opened by LouisPennachio 1
  • ArcProgressStackView in HorizontalScrollView?

    ArcProgressStackView in HorizontalScrollView?

    Hey

    First of all, awesome library! I want to use the ArcProgressStackView in a HorizontalScrollView (in the end I want to dynamically add multiple ArcProgressStackViews programmatically) but I can't seem to make it work even via xml.

    Here's what I tried:

        <HorizontalScrollView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="40">
    
                <com.gigamole.library.ArcProgressStackView
                    android:id="@+id/arc0"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="@dimen/double_space_horizontal_margin"
                    android:layout_marginStart="@dimen/double_space_horizontal_margin"
                    android:layout_marginRight="@dimen/double_space_horizontal_margin"
                    android:layout_marginEnd="@dimen/double_space_horizontal_margin"
                    android:layout_marginTop="@dimen/double_space_vertical_margin"
                    android:layout_marginBottom="@dimen/double_space_vertical_margin"
                    app:apsv_shadowed="true"
                    app:apsv_shadow_distance="1dp"
                    app:apsv_shadow_radius="2dp"
                    app:apsv_animated="true"
                    app:apsv_animation_duration="2000"
                    app:apsv_dragged="false"
                    app:apsv_text_color="@color/colorConsumer"
                    app:apsv_draw_width="15%"
                    app:apsv_model_bg_enabled="true"
                    app:apsv_start_angle="135"
                    app:apsv_sweep_angle="270"
                    app:apsv_indicator_orientation="horizontal"/>
    
        </HorizontalScrollView>
    

    And just nothing is shown or at least no ArcProgressStackView.

    Thanks in advance for your help.

    Cheers

    opened by radaced 1
  • How to make ArcProgressStackView responsive to multiple screens size?

    How to make ArcProgressStackView responsive to multiple screens size?

    Hi, Thanks for this awesome library. My question is how can I make it wrap content for my usage am using a half circle shaped ArcProgressStacView but it is eating space for a full circle. And when am hardcoding its size on some smaller screen devices it is cutting at the edges. Will you please help me out here? Thanks

    opened by kvaruna 0
  • I cant see the preview of the arc

    I cant see the preview of the arc

    I cant see the preview of the arc when the app is pushed to device. I can see the preview in the android studio but while run time it shows nothing to me

    Im not sure if i have added everything that is need , I just added the library through gradel and copied the xml part and tried to run but it shows nothing...

    opened by snehalgongle 0
  • Possible bug with app:apsv_model_offset=

    Possible bug with app:apsv_model_offset="10dp"

    When set app:apsv_model_offset="10dp" the circles get cut by the edges of the view, the solution is in the line 827 of the ArcProgressStackView.java

    Change final float modelOffset = (mProgressModelSize * i) + (paintOffset + shadowOffset) - (mProgressModelOffset * i);

    With final float modelOffset = (mProgressModelSize * i) + (paintOffset + shadowOffset) + (mProgressModelOffset * i);

    if you put + (mProgressModelOffset * i); works perfectly

    Hope this help Best Regards

    opened by Mutalistik 0
  • animateProgress problem when receiveing a broadcast

    animateProgress problem when receiveing a broadcast

    There is a service in my app that contains an Asynctask that sends a broadcast during onProgressUpdate. I want to show the progress in an ArcProgressStackView in a fragment that receives the broadcast. The problem is that the progress bar is updated but it doesn't show the animation during the update between an updated number to another. As a note, If I don't send the broadcast, the progress bar, of course, doesn't show the progress, but the animation is shown from 0 immediately to 100 after analysis finished. I mean it seems that updating the progress bar from a service by a broadcast receiver is affecting on the animation.

    Would you please let me know what I am missing?

    opened by ManSoSec 0
Owner
Devlight
We deliver the right results in terms of efficiency, performance, interoperability, and user experience comprehensive technology.
Devlight
Present your progress bars in arc mode with information and total control.

ArcProgressStackView Present your progress bars in arc mode with information and total control. You can check the sample app here. Warn This library i

Devlight 1.3k Nov 29, 2022
This is beautiful color arc progress bar.

ColorArcProgressBar 中文版 This is a customizable circular progressbar.It can achieve the effect of the QQ health's arc progress with XML. What's more, w

PASSION 928 Dec 6, 2022
Arc pointer - simple customized progress bar in the form of an arch

ArcPointer Simple customized progress bar in the form of an arch Demo Quick start Step 1 Gradle: compile 'io.github.dvegasa:arcpointer:1.0.2' Maven:

Ed Khalturin 79 Nov 22, 2022
ArcProgressbar project let create Arc progressbar in android in simplest way.

Arc Progressbar In Android ArcProgressbar project let create Arc progressbar in android in simplest way. USAGE To make a Arc Progressbar add ArcProgre

Manish 40 Dec 11, 2022
An Android percentage chart that displays the progress of any single given task or information.

Percentage Chart View A Java-based easy to use and highly adjustable custom view that displays the progress of a single given task. Please feel free t

Rami Jemli 364 Dec 20, 2022
Android loading or progress dialog widget library, provide efficient way to implement iOS like loading dialog and progress wheel

ACProgressLite English Version / 中文版本 An Android loading widget library. Lite and easy to use, strong customizability. Can be used to implement 'iOS'

Cloudist Technology Co., Ltd. 234 Nov 24, 2022
IOSProgressBar is a progress-bar lib for android. And the progress-bar looks like iOS system style

IOSProgressBar is a progress-bar lib for android. And the progress-bar looks like iOS system style

heyangyang 6 Aug 25, 2022
A progress wheel for android, intended for use instead of the standard progress bar.

Deprecation warning This project is no-longer maintained, and has not been maintained for a few years now. If you're looking for an alternative librar

Todd Davies 2.7k Dec 29, 2022
:barber: [Android Library] Stacked dual progress indicator progress-bar

StackedHorizontalProgressBar Specs Featured in Show some ❤️ Android library with ability to show two progress indicators in one horizontal progress ba

Nishant Srivastava 98 Nov 11, 2022
Circular Slider UI Control for Android

Circular Slider What is this? Circular Slider is a custom-built Android View used for choosing numbers. It works similarly to the regular slider contr

Milos Marinkovic 309 Dec 7, 2022
Android fillable progress view working with SVG paths. This is a nice option too if you want to create an interesting branding logo for your app. Based on the iOS project: https://github.com/poolqf/FillableLoaders

Android FillableLoaders Android Open Source library providing an interesting fillable progress view working with SVG paths. This is a nice option too

Jorge Castillo 2k Jan 1, 2023
Yet another android custom progress view for your music player

MaskProgressView Yet another android custom progress view for your music player Demo Youtube Video Link Usage <co.mobiwise.library.MaskProgressView

Mert Şimşek 367 Dec 25, 2022
An android library to easily add circular progress bar into your Jetpack Compose apps.

CircularProgressBar for Jetpack Compose An android library to easily add circular progress bar into your Jetpack Compose apps. Have a Look Usage Circu

Hitanshu Dhawan 38 Oct 30, 2022
A circular android ProgressBar library which extends View, and the usage same as ProgressBar, It has solid,line and solid_line three styles. Besides, progress value can be freely customized.

CircleProgressBar 中文版文档 The CircleProgressBar extends View, It has both solid and line two styles. Besides, progress value can be freely customized. I

dinus_developer 1.2k Jan 3, 2023
A customizable, animated progress bar that features rounded corners. This Android library is designed to look great and be simple to use 🎉

RoundedProgressBar Easy, Beautiful, Customizeable The RoundedProgressBar library gives you a wide range of customizable options for making progress ba

null 541 Jan 1, 2023
Android - An action bar item which acts both as a refresh button and as a progress indicator

RefreshActionItem An action bar item that implements this common pattern: Initially it shows a refresh button. If the button is clicked, a background

Manuel Peinado Gallego 655 Nov 10, 2022
A simple and flexible Fillable Progress Layout written in Kotlin

FillProgressLayout ?? A simple and flexible Fill Progress Layout written in Kotlin ?? Netflix button animation using FillProgressLayout Support Librar

null 78 Sep 20, 2022
Progress Button is a android library for hanling different types state like active, finished, enabled, disabled and reset with a single line of code.

Progress Button is a android library for hanling different types state like active, finished, enabled, disabled and reset with a single line of code.

Sagar Khurana 38 Nov 15, 2022
A progress bar with animation, gradient and colorful shadow.

Fancy Progressbar Android library providing a beautiful progressbar with colorful shadow, gradient and animation for Jetpack Compose. Download Add in

Fatemeh Afshari 5 Dec 25, 2022