All Projects → agrawalsuneet → LoadersPack-Android

agrawalsuneet / LoadersPack-Android

Licence: Apache-2.0 license
Android LoadersPack - a replacement of default android material progressbar with different loaders

Programming Languages

kotlin
9241 projects
java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to LoadersPack-Android

SVGLoadersPack-Android
Android SVGLoadersPack - SVG animations and Loaders in Android
Stars: ✭ 27 (-77.31%)
Mutual labels:  loader, loaders, loaderspack
react-awesome-loaders
🚀 High quality, super responsive and completely customisable Loading Animations to insert into your website with single line of code.
Stars: ✭ 146 (+22.69%)
Mutual labels:  loader, loaders
Text Spinners
Pure text, CSS only, font independent, inline loading indicators
Stars: ✭ 2,728 (+2192.44%)
Mutual labels:  loader, loaders
Nvactivityindicatorview
A collection of awesome loading animations
Stars: ✭ 10,031 (+8329.41%)
Mutual labels:  loader, loaders
Ripple.js
Proper Material Design ripple effect for the web, that wouldn't interfere your elements' DOM.
Stars: ✭ 18 (-84.87%)
Mutual labels:  ripple, ripple-effect
Primereact
The Most Complete React UI Component Library
Stars: ✭ 2,393 (+1910.92%)
Mutual labels:  ripple, ripple-effect
Vue Wait
Complex Loader and Progress Management for Vue/Vuex and Nuxt Applications
Stars: ✭ 1,869 (+1470.59%)
Mutual labels:  loader, loaders
ripple-effect-click
Add ripple effect to any element you want when the click action happens ("ripple effect")
Stars: ✭ 15 (-87.39%)
Mutual labels:  ripple, ripple-effect
react-touch-ripple
Create ripple effect from Material Design with React
Stars: ✭ 27 (-77.31%)
Mutual labels:  ripple, ripple-effect
favicon-canvas-loader
Create and display a circular loading <canvas> animation as a webpage favicon.
Stars: ✭ 83 (-30.25%)
Mutual labels:  loader
rprogress
React ajax loader progress bar with clear API
Stars: ✭ 12 (-89.92%)
Mutual labels:  loader
xrpl-dev-portal
Source code for xrpl.org including developer documentation
Stars: ✭ 330 (+177.31%)
Mutual labels:  ripple
MCP7940
Arduino Library to access the MCP7940M, MCP7940N and MCP7940x Real-Time chips
Stars: ✭ 29 (-75.63%)
Mutual labels:  clock
PolarClockElm
A colorful animated polar clock in the browser. Built with Elm and inspired by an infamous screensaver.
Stars: ✭ 29 (-75.63%)
Mutual labels:  clock
moonlight-admin
Easy to use admin panel, designed for cheat loaders.
Stars: ✭ 29 (-75.63%)
Mutual labels:  loader
faker
A kotlin extension to load images asynchronously on android
Stars: ✭ 58 (-51.26%)
Mutual labels:  loader
webpacker
🔸 Webpack configuration manager
Stars: ✭ 18 (-84.87%)
Mutual labels:  loaders
epaper-clock-and-more
e-paper clock + weather + AQI + traffic delays - using Waveshare 2.7inch & 4.2inch eink displays running on Raspberry Pi
Stars: ✭ 34 (-71.43%)
Mutual labels:  clock
tm
timers and timeline
Stars: ✭ 31 (-73.95%)
Mutual labels:  clock
artunis-mobile
XRP Wallet app for Android and iOS, built in React Native.
Stars: ✭ 23 (-80.67%)
Mutual labels:  ripple

LoadersPack

Android Loaders

A replacement of default android material progressbar with loaders

latest version : Download

Android Arsenal

clockloader      rippleloader

multiplerippleloader      gaugeloader

curvesloader      ringandcircleloader

arcprogressloader      fidgetloader

wifiloader      searchloader

pulseloader      RotatingCircularSticksLoader

circularsticksloader

Check all other loaders here

How To use

include below dependency in build.gradle of application and compile it

implementation 'com.agrawalsuneet.androidlibs:loaderspack:1.2.3'

ClockLoader

Through XML
<com.agrawalsuneet.loaderspack.loaders.ClockLoader
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:clock_animSpeedMultiplier="0.5"
        app:clock_bigCircleColor="@color/colorPrimary"
        app:clock_bigCircleRadius="80dp"
        app:clock_hourHandColor="@color/colorAccent"
        app:clock_hourHandLength="40dp"
        app:clock_innerCircleColor="@color/colorPrimaryDark"
        app:clock_innerCircleRadius="5dp"
        app:clock_minuteHandColor="@color/colorAccent"
        app:clock_minuteHandLength="60dp"
        app:clock_outerCircleBorderColor="@color/colorAccent"
        app:clock_outerCircleBorderWidth="10dp" />
Through Code
  • Kotlin
        var clock = ClockLoader(this)
                .apply {
                    outerCircleBorderWidth = 8.0f
                    bigCircleRadius = 150.0f
                    minuteHandLength = 120.0f
                    hourHandLength = 80.0f
                    innerCircleRadius = 15.0f

                    outerCircleBorderColor = ContextCompat.getColor(context, R.color.colorAccent)
                    bigCircleColor = ContextCompat.getColor(context, R.color.colorPrimary)
                    innerCircleColor = ContextCompat.getColor(context, R.color.colorPrimaryDark)
                    hourHandColor = ContextCompat.getColor(context, R.color.colorAccent)
                    minuteHandColor = ContextCompat.getColor(context, R.color.colorAccent)

                    animSpeedMultiplier = 2.0f
                }


        containerLayout.addView(clock)
  • Java
        ClockLoader clockLoader = new ClockLoader(this);
        clockLoader.setOuterCircleBorderWidth(8.0f);
        clockLoader.setBigCircleRadius(150.0f);
        clockLoader.setMinuteHandLength(120.0f);
        clockLoader.setHourHandLength(80.0f);
        clockLoader.setInnerCircleRadius(15.0f);
        
        clockLoader.setOuterCircleBorderColor(ContextCompat.getColor(this, R.color.colorAccent));
        clockLoader.setBigCircleColor(ContextCompat.getColor(this, R.color.colorPrimary));
        clockLoader.setInnerCircleColor(ContextCompat.getColor(this, R.color.colorPrimaryDark));
        clockLoader.setHourHandColor(ContextCompat.getColor(this, R.color.colorAccent));
        clockLoader.setMinuteHandColor(ContextCompat.getColor(this, R.color.colorAccent));
        
        clockLoader.setAnimSpeedMultiplier(2.0f);
        
        container.addView(clockLoader);

RippleLoader

Through XML
<com.agrawalsuneet.loaderspack.loaders.RippleLoader
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:ripple_animDuration="500"
        app:ripple_circleColor="@color/blue"
        app:ripple_circleInitialRadius="50dp"
        app:ripple_fromAlpha="1.0"
        app:ripple_interpolator="@android:anim/decelerate_interpolator"
        app:ripple_startLoadingDefault="true"
        app:ripple_toAplha="0.01" />
Through Code
  • Kotlin
        val ripple = RippleLoader(baseContext).apply {
            circleInitialRadius = 80
            circleColor = resources.getColor(R.color.black)
            fromAlpha = 1.0f
            toAlpha = 0f
            animationDuration = 1000
            interpolator = DecelerateInterpolator()
        }


        containerLayout.addView(ripple)
  • Java
        RippleLoader ripple = new RippleLoader(this);
        ripple.setCircleInitialRadius(80);
        ripple.setCircleColor(getResources().getColor(R.color.red));
        ripple.setFromAlpha(1.0f);
        ripple.setToAlpha(0.01f);
        ripple.setAnimationDuration(1000);
        ripple.setInterpolator(new DecelerateInterpolator());
        ripple.setStartLoadingDefault(true);
        
        container.addView(ripple);

MultipleRippleLoader

Through XML
<com.agrawalsuneet.loaderspack.loaders.MultipleRippleLoader
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            app:multipleripple_animDuration="6000"
            app:multipleripple_circleColor="@color/green"
            app:multipleripple_circleInitialRadius="20dp"
            app:multipleripple_fromAlpha="0.8"
            app:multipleripple_interpolator="@android:anim/decelerate_interpolator"
            app:multipleripple_noOfRipples="3"
            app:multipleripple_toAplha="0.1" />
Through Code
  • Kotlin
        val multipleRippleLoader = MultipleRippleLoader(this,
                        40, 
                        ContextCompat.getColor(this, R.color.blue), 
                        2)
                        .apply {
                            fromAlpha = 0.9f
                            toAlpha = 0.2f
                            animationDuration = 2000
                            interpolator = LinearInterpolator()
                        }
        
                containerLayout.addView(multipleRippleLoader)
  • Java
        MultipleRippleLoader multipleRippleLoader = new MultipleRippleLoader(this,
                        40,
                        ContextCompat.getColor(this, R.color.blue),
                        2);
        
                multipleRippleLoader.setFromAlpha(0.9f);
                multipleRippleLoader.setToAlpha(0.2f);
                multipleRippleLoader.setAnimationDuration(2000);
                multipleRippleLoader.setInterpolator(new LinearInterpolator());
        
        
                container.addView(multipleRippleLoader);

GaugeLoader

Through XML
<com.agrawalsuneet.loaderspack.loaders.GaugeLoader
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:gauge_defaultStartLoading="true"
        app:gauge_higherRangeColor="@color/blue_selected"
        app:gauge_lowerRangeColor="@color/blue_delfault"
        app:gauge_needleColor="@android:color/holo_orange_dark"
        app:gauge_needleJointRadius="20dp"
        app:gauge_needleWidth="8dp"
        app:gauge_rangeIndicatorRadius="60dp"
        app:gauge_rangeIndicatorWidth="40dp" />
Through Code
  • Kotlin
        val gaugeLoader = GaugeLoader(this, 150, 80,
                        20, 50,
                        ContextCompat.getColor(this, R.color.blue_delfault),
                        ContextCompat.getColor(this, R.color.blue_selected),
                        ContextCompat.getColor(this, android.R.color.black), true)
                        
        containerLayout.addView(gaugeLoader)
        
        //or you can provide custom rotate animation for needle
        
        val gaugeLoader = GaugeLoader(this, 150, 80,
                        20, 50,
                        ContextCompat.getColor(this, R.color.blue_delfault),
                        ContextCompat.getColor(this, R.color.blue_selected),
                        ContextCompat.getColor(this, android.R.color.black), false)
        
        Handler().postDelayed({
            val anim = RotateAnimation(270.0f, 450.0f, gaugeLoader.needlePivotX, gaugeLoader.needlePivotY)
            anim.duration = 1000
            anim.interpolator = LinearInterpolator()
            anim.repeatMode = Animation.REVERSE
            anim.repeatCount = Animation.INFINITE
            gaugeLoader.startLoading(anim)
        }, 500)
        
        //delay because view will not be initialized
        
        containerLayout.addView(gaugeLoader)
  • Java
        GaugeLoader gaugeLoader = new GaugeLoader(this, 150, 80,
                        20, 50,
                        ContextCompat.getColor(this, R.color.blue_delfault),
                        ContextCompat.getColor(this, R.color.blue_selected),
                        ContextCompat.getColor(this, android.R.color.black), true);
        
        container.addView(gaugeLoader);

        //or you can provide custom rotate animation for needle
                
       final GaugeLoader gaugeLoader = new GaugeLoader(this, 150, 80,
                       20, 50,
                       ContextCompat.getColor(this, R.color.blue_delfault),
                       ContextCompat.getColor(this, R.color.blue_selected),
                       ContextCompat.getColor(this, android.R.color.black), false);
       
               new Handler().postDelayed(new Runnable() {
                   @Override
                   public void run() {
                       RotateAnimation anim = new RotateAnimation(270.0f, 450.0f,
                               gaugeLoader.getNeedlePivotX(), gaugeLoader.getNeedlePivotY());
                       anim.setDuration(1000);
                       anim.setInterpolator(new LinearInterpolator());
                       anim.setRepeatMode(Animation.REVERSE);
                       anim.setRepeatCount(Animation.INFINITE);
                       gaugeLoader.startLoading(anim);
                   }
               }, 500);
       
       //delay because view will not be initialized

       container.addView(gaugeLoader);         

CurvesLoaders

Through XML
<com.agrawalsuneet.loaderspack.loaders.CurvesLoader
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:curves_animDuration="1000"
        app:curves_curveColor="@color/blue_selected"
        app:curves_curveSweepAngle="160"
        app:curves_curveWidth="5dp"
        app:curves_distanceBetweenCurves="5dp"
        app:curves_interpolator="@android:anim/linear_interpolator"
        app:curves_noOfCurves="5"
        app:curves_outermostCurveRadius="80dp" />
Through Code
  • Kotlin
        val curvesLoader = CurvesLoader(
                        this,
                        4,
                        100,
                        10,
                        10,
                        160.0f,
                        ContextCompat.getColor(this, R.color.blue_selected))
                        .apply {
                            animDuration = 1000
                            interpolator = LinearInterpolator()
                        }

                containerLayout.addView(curvesLoader)
  • Java
        CurvesLoader curvesLoader = new CurvesLoader(
                        this,
                        4,
                        100,
                        10,
                        10,
                        160.0f,
                        ContextCompat.getColor(this, R.color.blue_selected));


                curvesLoader.setAnimDuration(1000);
                curvesLoader.setInterpolator(new LinearInterpolator());

                container.addView(curvesLoader);

RingAndCircleLoader

Through XML
<com.agrawalsuneet.loaderspack.loaders.RingAndCircleLoader
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"g
            app:ringandcircle_animDuration="800"
            app:ringandcircle_circleColor="@color/green"
            app:ringandcircle_circleRadius="6dp"
            app:ringandcircle_ringColor="@color/green_default"
            app:ringandcircle_ringRadius="20dp"
            app:ringandcircle_ringWidth="4dp" />
Through Code
  • Kotlin
        val ringAndCircleLoader = RingAndCircleLoader(
                        this,
                        20,
                        100,
                        10,
                        ContextCompat.getColor(this, R.color.blue),
                        ContextCompat.getColor(this, R.color.blue_delfault))
                        .apply {
                            animDuration = 1000
                        }

                containerLayout.addView(ringAndCircleLoader)
  • Java
        RingAndCircleLoader ringAndCircleLoader = new RingAndCircleLoader(
                        this,
                        20,
                        100,
                        10,
                        ContextCompat.getColor(this, R.color.blue),
                        ContextCompat.getColor(this, R.color.blue_delfault));

                ringAndCircleLoader.setAnimDuration(1000);

                container.addView(ringAndCircleLoader);

ArcProgressLoader

<array name="colors_rgb">
        <item>@color/red</item>
        <item>@color/amber</item>
        <item>@color/green</item>
        <item>@color/grey</item>
    </array>
Through XML
<com.agrawalsuneet.loaderspack.loaders.ArcProgressLoader
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:arcprogress_arcColorsArray="@array/colors_rgb"
        app:arcprogress_arcRadius="60dp"
        app:arcprogress_arcWidth="8dp"
        app:arcprogress_incrementalAngle="7.0"
        app:arcprogress_maxArcAngle="220.0" />
Through Code
  • Kotlin
         val arcProgressLoader = ArcProgressLoader(this,
                        120, 20,
                        10.0f, 180.0f,
                        resources.getIntArray(R.array.colors_rgb))

                containerLayout.addView(arcProgressLoader)
  • Java
        ArcProgressLoader arcProgressLoader = new ArcProgressLoader(this,
                        120, 20,
                        10.0f, 180.0f,
                        getResources().getIntArray(R.array.colors_rgb));

                container.addView(arcProgressLoader);

FidgetLoader

Through XML
<com.agrawalsuneet.loaderspack.loaders.FidgetLoader
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:fidget_animDuration="3000"
        app:fidget_bodyColor="@color/blue_selected"
        app:fidget_fidgetRadius="30dp"
        app:fidget_interpolator="@android:anim/accelerate_decelerate_interpolator"
        app:fidget_noOfRotation="10"
        app:fidget_sideCirclesColor="@android:color/darker_gray" />
Through Code
  • Kotlin
         val fidgetLoader = FidgetLoader(this,
                         20,
                         ContextCompat.getColor(this, R.color.blue_selected),
                         ContextCompat.getColor(this, R.color.amber))
                         .apply {
                             animDuration = 3000
                             noOfRotation = 1
                             interpolator = BounceInterpolator()
                         }

                 containerLayout.addView(fidgetLoader)
  • Java
        FidgetLoader fidgetLoader = new FidgetLoader(this,
                        20,
                        ContextCompat.getColor(this, R.color.blue_selected),
                        ContextCompat.getColor(this, R.color.amber));

                fidgetLoader.setAnimDuration(3000);
                fidgetLoader.setNoOfRotation(1);
                fidgetLoader.setInterpolator(new BounceInterpolator());

                container.addView(fidgetLoader);

WifiLoader

Through XML
<com.agrawalsuneet.loaderspack.loaders.WifiLoader
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="16dp"
        app:wifi_centerCircleRadius="6dp"
        app:wifi_incrementalAngle="1.0"
        app:wifi_wifiColor="@color/blue_selected" />
Through Code
  • Kotlin
         val wifiLoader = WifiLoader(this,
                         20,
                         ContextCompat.getColor(this, R.color.blue_selected))
                         .apply {
                             incrementalAngle = 2.0f
                         }

                 containerLayout.addView(wifiLoader)
  • Java
        WifiLoader wifiLoader = new WifiLoader(this,
                        20,
                        ContextCompat.getColor(this, R.color.blue_selected));

                wifiLoader.setIncrementalAngle(1.2f);

                container.addView(wifiLoader);

SearchLoader

Through XML
<com.agrawalsuneet.loaderspack.loaders.SearchLoader
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            app:search_defaultStartLoading="true"
            app:search_lensBorderWidth="6dp"
            app:search_lensColor="@color/blue_selected"
            app:search_lensHandleLength="20dp"
            app:search_lensRadius="18dp"
            app:search_xRangeToSearch="140dp"
            app:search_yRangeToSearch="140dp" />
Through Code
  • Kotlin
         val searchLoader = SearchLoader(this,
                         60, 20, 80,
                         ContextCompat.getColor(this, R.color.red),
                         500, 500, true)

                 containerLayout.addView(searchLoader)
  • Java
        SearchLoader searchLoader = new SearchLoader(this,
                        60, 20, 80,
                        ContextCompat.getColor(this, R.color.red),
                        500, 500, true);

                container.addView(searchLoader);

PulseLoader

Through XML
<com.agrawalsuneet.loaderspack.loaders.PulseLoader
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:pulse_LineThickness="6dp"
        app:pulse_normalIncrementalValue="4.0"
        app:pulse_pulseColor="@color/blue_selected"
        app:pulse_pulseIncrementalValue="20.0"
        app:pulse_sideLength="100dp" />
Through Code
  • Kotlin
        val pulseLoader = PulseLoader(this,
                        15,
                        400,
                        4.0f,
                        15.0f,
                        ContextCompat.getColor(this, R.color.blue_selected))

                containerLayout.addView(pulseLoader)
  • Java
        PulseLoader pulseLoader = new PulseLoader(this,
                        15,
                        400,
                        4.0f,
                        15.0f,
                        ContextCompat.getColor(this, R.color.blue_selected));

                container.addView(pulseLoader);

RotatingCircularSticksLoader

Through XML
<com.agrawalsuneet.loaderspack.loaders.RotatingCircularSticksLoader
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:rotatingsticks_noOfSticks="50"
        app:rotatingsticks_innerCircleRadius="15dp"
        app:rotatingsticks_outerCircleRadius="30dp"
        app:rotatingsticks_stickColor="@color/grey"
        app:rotatingsticks_viewBackgroundColor="@color/white"
        app:rotatingsticks_animDuration="5000"/>
Through Code
  • Kotlin
        val loader = RotatingCircularSticksLoader(this, 16, 100f, 50f,
                        ContextCompat.getColor(this, R.color.blue),
                        ContextCompat.getColor(this, android.R.color.white))
                        .apply {
                            animDuration = 5000
                        }
        
                containerLayout.addView(loader)
  • Java
        RotatingCircularSticksLoader loader = new RotatingCircularSticksLoader(this,
                        16, 100f, 50f,
                        ContextCompat.getColor(this, R.color.blue),
                        ContextCompat.getColor(this, android.R.color.white));
        
                loader.setAnimDuration(5000);
                container.addView(loader);

CircularSticksLoader

Through XML
<com.agrawalsuneet.loaderspack.loaders.CircularSticksLoader
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="16dp"
        app:circularsticks_animDuration="100"
        app:circularsticks_firstShadowColor="#aa000000"
        app:circularsticks_innerCircleRadius="50dp"
        app:circularsticks_noOfSticks="32"
        app:circularsticks_outerCircleRadius="80dp"
        app:circularsticks_secondShadowColor="#77000000"
        app:circularsticks_selectedStickColor="@color/black"
        app:circularsticks_showRunningShadow="true"
        app:circularsticks_stickColor="@color/grey"
        app:circularsticks_viewBackgroundColor="@color/white" />
Through Code
  • Kotlin
        val loader = CircularSticksLoader(this, 16, 200f, 100f,
                        ContextCompat.getColor(this, R.color.blue),
                        ContextCompat.getColor(this, R.color.red),
                        ContextCompat.getColor(this, android.R.color.white))
                        .apply {
                            showRunningShadow = true
                            firstShadowColor = ContextCompat.getColor(context, R.color.green)
                            secondShadowColor = ContextCompat.getColor(context, R.color.yellow)
                            animDuration = 100
                        }
        
                containerLayout.addView(loader)
  • Java
        CircularSticksLoader loader = new CircularSticksLoader(this, 16,
                        200f, 100f,
                        ContextCompat.getColor(this, R.color.blue),
                        ContextCompat.getColor(this, R.color.red),
                        ContextCompat.getColor(this, android.R.color.white));
        
                loader.setShowRunningShadow(true);
                loader.setFirstShadowColor(ContextCompat.getColor(this, R.color.green));
                loader.setSecondShadowColor(ContextCompat.getColor(this, R.color.yellow));
                loader.setAnimDuration(100);
        
                container.addView(loader);

Feel free to drop an email at [email protected] if face any issue or require any additional functionality in it.

Copyright 2018 Suneet Agrawal

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].