{"id":7870176,"url":"https://github.com/agrawalsuneet/DotLoadersPack-Android","last_synced_at":"2025-07-19T09:31:46.613Z","repository":{"id":41812500,"uuid":"78818658","full_name":"agrawalsuneet/DotLoadersPack-Android","owner":"agrawalsuneet","description":"Android DotsLoaders - a replacement of default android material progressbar with dots loaders","archived":false,"fork":false,"pushed_at":"2021-08-02T04:54:28.000Z","size":373,"stargazers_count":262,"open_issues_count":7,"forks_count":50,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-11-14T09:03:48.875Z","etag":null,"topics":["android","android-loader","circulardotsloader","dots","dots-loader","dotsloader","java","kotlin","lazyloader","lineardotsloader","loader","loaders","tashieloader"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/agrawalsuneet.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-01-13T05:34:12.000Z","updated_at":"2024-10-10T05:41:51.000Z","dependencies_parsed_at":"2022-09-01T04:31:10.176Z","dependency_job_id":null,"html_url":"https://github.com/agrawalsuneet/DotLoadersPack-Android","commit_stats":null,"previous_names":["agrawalsuneet/dotsloader"],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agrawalsuneet%2FDotLoadersPack-Android","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agrawalsuneet%2FDotLoadersPack-Android/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agrawalsuneet%2FDotLoadersPack-Android/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agrawalsuneet%2FDotLoadersPack-Android/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/agrawalsuneet","download_url":"https://codeload.github.com/agrawalsuneet/DotLoadersPack-Android/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":226470605,"owners_count":17630332,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","android-loader","circulardotsloader","dots","dots-loader","dotsloader","java","kotlin","lazyloader","lineardotsloader","loader","loaders","tashieloader"],"created_at":"2024-04-13T07:10:45.723Z","updated_at":"2024-11-26T16:30:45.542Z","avatar_url":"https://github.com/agrawalsuneet.png","language":"Kotlin","readme":"# DotsLoader\n\u003e Android dotsloader\n\n\u003e A replacement of default android material progressbar with dots loader\n\nlatest version : [ ![Download](https://api.bintray.com/packages/agrawalsuneet/androidlibs/dotloaderspack/images/download.svg) ](https://bintray.com/agrawalsuneet/androidlibs/dotloaderspack/_latestVersion)\n\n[![Android Arsenal]( https://img.shields.io/badge/Android%20Arsenal-DotLoadersPack-green.svg?style=flat )]( https://android-arsenal.com/details/1/7244 )\n\n\n![lazyloader](https://user-images.githubusercontent.com/12999622/36225792-b7044432-11c3-11e8-8e22-5bbdcafa2312.gif)      ![tashieloader](https://user-images.githubusercontent.com/12999622/36225793-b71f694c-11c3-11e8-9a81-8414bafb26c5.gif)\n\n![slidingloader](https://user-images.githubusercontent.com/12999622/34130222-f58ba220-e43e-11e7-8f60-4971918fecde.gif)      ![bounceloader](https://user-images.githubusercontent.com/12999622/56847870-1d5b9080-68ff-11e9-952f-b0414771d580.gif)\n\n![trailingcirculardotsloader](https://user-images.githubusercontent.com/12999622/39367184-f3bb706a-4a2d-11e8-9120-5027bbef2861.gif)      ![zeeloader](https://user-images.githubusercontent.com/12999622/44630261-8ba41980-a952-11e8-9ba5-45f4cafb473b.gif)\n\n![allianceloader](https://user-images.githubusercontent.com/12999622/44946787-d1e9f480-adfa-11e8-82ff-23e5f19a656b.gif)      ![lightsloader](https://user-images.githubusercontent.com/12999622/50548389-bb9d5980-0c71-11e9-8803-f25d1175ced0.gif)\n\n![pullinloader](https://user-images.githubusercontent.com/12999622/52536021-80676d80-2d7b-11e9-9b06-8135d6d15dbb.gif)     ![lineardotsloader](https://user-images.githubusercontent.com/12999622/35482391-54665328-042c-11e8-954b-93a92ebe2b0c.gif)\n\n![circulardotsloader](https://user-images.githubusercontent.com/12999622/36224573-f274b956-11bf-11e8-8f97-e4c031959465.gif)    ![RotatingCircularDotsLoader](https://user-images.githubusercontent.com/12999622/34453427-d9aa8294-ed4c-11e7-8b1d-fe98d0c2c3dc.gif)\n\nCheck all other loaders [here](https://agrawalsuneet.github.io/agrawalsuneet/opensourcecontribution/)\n\n## How To use\ninclude below dependency in build.gradle of application and compile it\n```\nimplementation 'com.agrawalsuneet.androidlibs:dotsloader:1.4'\n```\n\n\n### LazyLoader\n##### Through XML\n```\n\u003ccom.agrawalsuneet.dotsloader.loaders.LazyLoader\n        android:layout_width=\"wrap_content\"\n        android:layout_height=\"wrap_content\"\n        android:layout_margin=\"20dp\"\n        android:layout_marginTop=\"30dp\"\n        app:lazyloader_animDur=\"800\"\n        app:lazyloader_dotsDist=\"10dp\"\n        app:lazyloader_dotsRadius=\"16dp\"\n        app:lazyloader_firstDelayDur=\"150\"\n        app:lazyloader_firstDotColor=\"@color/red\"\n        app:lazyloader_interpolator=\"@android:anim/decelerate_interpolator\"\n        app:lazyloader_secondDelayDur=\"300\"\n        app:lazyloader_secondDotColor=\"@color/green\"\n        app:lazyloader_thirdDotColor=\"@color/yellow\" /\u003e\n```\n\n##### Through Code\n\n* Kotlin\n```\n        var lazyLoader = LazyLoader(this, 15, 5,\n                        ContextCompat.getColor(this, R.color.loader_selected),\n                        ContextCompat.getColor(this, R.color.loader_selected),\n                        ContextCompat.getColor(this, R.color.loader_selected))\n                        .apply {\n                            animDuration = 500\n                            firstDelayDuration = 100\n                            secondDelayDuration = 200\n                            interpolator = DecelerateInterpolator()\n                        }\n        containerLL.addView(lazyLoader)\n```\n\n\n* Java\n```\n        LazyLoader loader = new LazyLoader(this, 30, 20, ContextCompat.getColor(this, R.color.loader_selected),\n                        ContextCompat.getColor(this, R.color.loader_selected),\n                        ContextCompat.getColor(this, R.color.loader_selected));\n                loader.setAnimDuration(500);\n                loader.setFirstDelayDuration(100);\n                loader.setSecondDelayDuration(200);\n                loader.setInterpolator(new LinearInterpolator());\n        \n        containerLL.addView(loader);\n```\n\n### TashieLoader\n##### Through XML\n```\n\u003ccom.agrawalsuneet.dotsloader.loaders.TashieLoader\n        android:layout_width=\"wrap_content\"\n        android:layout_height=\"wrap_content\"\n        app:tashieloader_animDelay=\"200\"\n        app:tashieloader_animDur=\"1000\"\n        app:tashieloader_dotsColor=\"@color/purple_selected\"\n        app:tashieloader_dotsDist=\"5dp\"\n        app:tashieloader_dotsRadius=\"20dp\"\n        app:tashieloader_interpolator=\"@android:anim/accelerate_interpolator\"\n        app:tashieloader_noOfDots=\"6\" /\u003e\n```\n\n#####  Through Code\n\n* Kotlin\n```\nvar tashie = TashieLoader(\n                this, 5,\n                30, 10,\n                ContextCompat.getColor(this, R.color.green))\n                .apply {\n                    animDuration = 500\n                    animDelay = 100\n                    interpolator = LinearInterpolator()\n                }\n        containerLL.addView(tashie)\n        \n```\n\n* Java\n```\nTashieLoader tashie = new TashieLoader(\n                this, 5,\n                30, 10,\n                ContextCompat.getColor(this, R.color.green));\n\n        tashie.setAnimDuration(500);\n        tashie.setAnimDelay(100);\n        tashie.setInterpolator(new LinearInterpolator());\n\n        containerLL.addView(tashie);\n```\n\n### SlidingLoader\n##### Through XML\n```\n\u003ccom.agrawalsuneet.dotsloader.loaders.SlidingLoader\n        android:layout_width=\"wrap_content\"\n        android:layout_height=\"wrap_content\"\n        app:slidingloader_animDur=\"2000\"\n        app:slidingloader_distanceToMove=\"12\"\n        app:slidingloader_dotsDist=\"6dp\"\n        app:slidingloader_dotsRadius=\"10dp\"\n        app:slidingloader_firstDotColor=\"@color/colorPrimary\"\n        app:slidingloader_secondDotColor=\"@color/colorAccent\"\n        app:slidingloader_thirdDotColor=\"@color/colorPrimaryDark\" /\u003e\n```\n\n#####  Through Code\n\n* Kotlin\n```\nvar sliding = SlidingLoader(this, 40, 10,\n                ContextCompat.getColor(this, R.color.red),\n                ContextCompat.getColor(this, R.color.yellow),\n                ContextCompat.getColor(this, R.color.green)).apply {\n            animDuration = 1000\n            distanceToMove = 12\n        }\n\n        containerLL.addView(sliding)\n        \n```\n\n* Java\n```\nSlidingLoader sliding = new SlidingLoader(this, 40, 10,\n                ContextCompat.getColor(this, R.color.red),\n                ContextCompat.getColor(this, R.color.yellow),\n                ContextCompat.getColor(this, R.color.green));\n        sliding.setAnimDuration(1000);\n        sliding.setDistanceToMove(12);\n\n        containerLL.addView(sliding);\n```\n\n### BounceLoader\n##### Through XML\n```\n\u003ccom.agrawalsuneet.dotsloader.loaders.BounceLoader\n        android:layout_width=\"wrap_content\"\n        android:layout_height=\"wrap_content\"\n        app:bounce_animDuration=\"1200\"\n        app:bounce_ballColor=\"@color/blue_selected\"\n        app:bounce_ballRadius=\"22dp\"\n        app:bounce_shadowColor=\"@color/black\"\n        app:bounce_showShadow=\"true\" /\u003e\n```\n\n#####  Through Code\n\n* Kotlin\n```\nval bounceLoader = BounceLoader(context = this,\n                ballRadius = 60,\n                ballColor = ContextCompat.getColor(this, R.color.red),\n                showShadow = true,\n                shadowColor = ContextCompat.getColor(this, R.color.black))\n                .apply {\n                    animDuration = 1000\n                }\n\n        containerLL.addView(bounceLoader)\n\n```\n\n* Java\n```\nBounceLoader bounceLoader = new BounceLoader(this,\n                60,\n                ContextCompat.getColor(this, R.color.red),\n                true,\n                ContextCompat.getColor(this, R.color.black));\n\n        bounceLoader.setAnimDuration(1000);\n        containerLL.addView(bounceLoader);\n```\n\n### TrailingCircularDotsLoader\n##### Through XML\n```\n\u003ccom.agrawalsuneet.dotsloader.loaders.TrailingCircularDotsLoader\n        android:layout_width=\"wrap_content\"\n        android:layout_height=\"wrap_content\"\n        app:trailingcircular_animDelay=\"200\"\n        app:trailingcircular_animDuration=\"1200\"\n        app:trailingcircular_bigCircleRadius=\"40dp\"\n        app:trailingcircular_dotsColor=\"@color/loader_selected\"\n        app:trailingcircular_dotsRadius=\"11dp\"\n        app:trailingcircular_noOfTrailingDots=\"5\" /\u003e\n```\n\n#####  Through Code\n\n* Kotlin\n```\nvar trailingCircularDotsLoader = TrailingCircularDotsLoader(\n                this,\n                24,\n                ContextCompat.getColor(this, android.R.color.holo_green_light),\n                100,\n                5)\n                .apply {\n                    animDuration = 1200\n                    animDelay = 200\n                }\n\n        containerLL.addView(trailingCircularDotsLoader)\n```\n\n* Java\n```\nTrailingCircularDotsLoader trailingCircularDotsLoader = new TrailingCircularDotsLoader(\n                this,\n                24,\n                ContextCompat.getColor(this, android.R.color.holo_green_light),\n                100,\n                5);\n        trailingCircularDotsLoader.setAnimDuration(1200);\n        trailingCircularDotsLoader.setAnimDelay(200);\n\n        containerLL.addView(trailingCircularDotsLoader);\n```\n\n### ZeeLoader\n##### Through XML\n```\n\u003ccom.agrawalsuneet.dotsloader.loaders.ZeeLoader\n        android:layout_width=\"wrap_content\"\n        android:layout_height=\"wrap_content\"\n        app:zee_animDuration=\"300\"\n        app:zee_distanceMultiplier=\"4\"\n        app:zee_dotsRadius=\"24dp\"\n        app:zee_firstDotsColor=\"@color/blue_selected\"\n        app:zee_secondDotsColor=\"@color/blue_delfault\" /\u003e\n```\n\n#####  Through Code\n\n* Kotlin\n```\nval zeeLoader = ZeeLoader(\n                this,\n                60,\n                4,\n                ContextCompat.getColor(this, R.color.red),\n                ContextCompat.getColor(this, R.color.red))\n                .apply {\n                    animDuration = 200\n                }\n\n        containerLL.addView(zeeLoader)\n        \n```\n\n* Java\n```\nZeeLoader zeeLoader = new ZeeLoader(\n                this,\n                60,\n                4,\n                ContextCompat.getColor(this, R.color.red),\n                ContextCompat.getColor(this, R.color.red));\n\n        zeeLoader.setAnimDuration(200);\n        \n        containerLL.addView(zeeLoader);\n```\n\n\n### AllianceLoader\n##### Through XML\n```\n\u003ccom.agrawalsuneet.dotsloader.loaders.AllianceLoader\n        android:layout_width=\"wrap_content\"\n        android:layout_height=\"wrap_content\"\n        app:alliance_animDuration=\"500\"\n        app:alliance_distanceMultiplier=\"4\"\n        app:alliance_dotsRadius=\"20dp\"\n        app:alliance_drawOnlyStroke=\"true\"\n        app:alliance_firstDotsColor=\"@color/red\"\n        app:alliance_secondDotsColor=\"@color/amber\"\n        app:alliance_strokeWidth=\"8dp\"\n        app:alliance_thirdDotsColor=\"@color/green\" /\u003e\n```\n\n#####  Through Code\n\n* Kotlin\n```\nprivate fun initAllianceLoader() {\n        val allianceLoader = AllianceLoader(\n                this,\n                40,\n                6,\n                true,\n                10,\n                ContextCompat.getColor(this, R.color.red),\n                ContextCompat.getColor(this, R.color.amber),\n                ContextCompat.getColor(this, R.color.green)\n        ).apply {\n            animDuration = 5000\n        }\n\n        containerLL.addView(allianceLoader)\n        \n```\n\n* Java\n```\nAllianceLoader allianceLoader = new AllianceLoader(\n                this,\n                40,\n                6,\n                true,\n                10,\n                ContextCompat.getColor(this, R.color.red),\n                ContextCompat.getColor(this, R.color.amber),\n                ContextCompat.getColor(this, R.color.green));\n\n        allianceLoader.setAnimDuration(500);\n\n        containerLL.addView(allianceLoader);\n```\n\n### LightsLoader\n##### Through XML\n```\n\u003ccom.agrawalsuneet.dotsloader.loaders.LightsLoader\n        android:layout_width=\"wrap_content\"\n        android:layout_height=\"wrap_content\"\n        android:layout_margin=\"16dp\"\n        app:lights_circleColor=\"@color/blue_selected\"\n        app:lights_circleDistance=\"4dp\"\n        app:lights_circleRadius=\"12dp\"\n        app:lights_noOfCircles=\"5\" /\u003e\n```\n\n#####  Through Code\n\n* Kotlin\n```\nval lightsLoader = LightsLoader(\n                this, 5,\n                30, 10,\n                ContextCompat.getColor(this, R.color.red))\n\n\n        containerLL.addView(lightsLoader)\n\n```\n\n* Java\n```\nLightsLoader lightsLoader = new LightsLoader(\n                this, 5,\n                30, 10,\n                ContextCompat.getColor(this, R.color.red));\n\n\n        containerLL.addView(lightsLoader);\n```\n\n### PullInLoader\n##### Through XML\n```\n\u003ccom.agrawalsuneet.dotsloader.loaders.PullInLoader\n        android:layout_width=\"wrap_content\"\n        android:layout_height=\"wrap_content\"\n        app:pullin_animDur=\"3000\"\n        app:pullin_bigCircleRadius=\"42dp\"\n        app:pullin_dotsColor=\"@color/blue_selected\"\n        app:pullin_dotsRadius=\"10dp\"\n        app:pullin_useMultipleColors=\"true\"\n        app:pullin_colorsArray=\"@array/vibgyorg\"/\u003e\n\n    \u003ccom.agrawalsuneet.dotsloader.loaders.PullInLoader\n        android:layout_width=\"wrap_content\"\n        android:layout_height=\"wrap_content\"\n        app:pullin_animDur=\"2500\"\n        app:pullin_bigCircleRadius=\"36dp\"\n        app:pullin_dotsColor=\"@color/blue_selected\"\n        app:pullin_dotsRadius=\"8dp\"/\u003e\n```\n\n##### Through Code\n\n* Kotlin\n```\n        val pullInLoader = PullInLoader(this,\n            20, 100, ContextCompat.getColor(this, R.color.red))\n            .apply {\n                animDuration = 2000\n            }\n\n        containerLL.addView(pullInLoader)\n\n        val pullInLoader2 = PullInLoader(this,\n            30, 160, resources.getIntArray(R.array.vibgyorg))\n            .apply {\n                animDuration = 2000\n            }\n\n        containerLL.addView(pullInLoader2)\n```\n\n\n* Java\n```\n        PullInLoader pullInLoader = new PullInLoader(this,\n                20, 100, ContextCompat.getColor(this, R.color.red));\n        pullInLoader.setAnimDuration(2000);\n\n        containerLL.addView(pullInLoader);\n\n        PullInLoader pullInLoader2 = new PullInLoader(this,\n                30, 160, getResources().getIntArray(R.array.vibgyorg));\n        pullInLoader.setAnimDuration(2000);\n\n        containerLL.addView(pullInLoader2);\n```\n\n\n### LinearDotsLoader\n##### Through XML\n```\n\u003ccom.agrawalsuneet.dotsloader.loaders.LinearDotsLoader\n        android:layout_width=\"wrap_content\"\n        android:layout_height=\"wrap_content\"\n        app:loader_animDur=\"1000\"\n        app:loader_noOfDots=\"8\"\n        app:loader_circleRadius=\"6dp\"\n        app:loader_defaultColor=\"@color/pink_default\"\n        app:loader_selectedColor=\"@color/pink_selected\"\n        app:loader_dotsDist=\"3dp\"\n        app:loader_expandOnSelect=\"false\"\n        app:loader_isSingleDir=\"false\"\n        app:loader_selectedRadius=\"10dp\"\n        app:loader_showRunningShadow=\"true\"\n        app:loader_firstShadowColor=\"@color/blue_selected\"\n        app:loader_secondShadowColor=\"@color/blue_delfault\"/\u003e\n```\n\n##### Through Code\n\n* Kotlin\n```\n        var loader = LinearDotsLoader(this)\n        loader.defaultColor = ContextCompat.getColor(this, R.color.loader_defalut)\n        loader.selectedColor = ContextCompat.getColor(this, R.color.loader_selected)\n        loader.isSingleDir = false\n        loader.noOfDots = 5\n        loader.selRadius = 60\n        loader.expandOnSelect = false\n        loader.radius = 40\n        loader.dotsDistance = 20\n        loader.animDur = 1000\n        loader.firstShadowColor = ContextCompat.getColor(this, R.color.pink_selected)\n        loader.secondShadowColor = ContextCompat.getColor(this, R.color.purple_selected)\n        loader.showRunningShadow = true\n        containerLL.addView(loader)\n```\n\n\n* Java\n```\n        LinearLayout containerLL = (LinearLayout) findViewById(R.id.container);\n\n        LinearDotsLoader loader = new LinearDotsLoader(this);\n        loader.setDefaultColor(ContextCompat.getColor(this, R.color.loader_defalut));\n        loader.setSelectedColor(ContextCompat.getColor(this, R.color.loader_selected));\n        loader.setSingleDir(true);\n        loader.setNoOfDots(5);\n        loader.setSelRadius(40);\n        loader.setExpandOnSelect(true);\n        loader.setRadius(30);\n        loader.setDotsDistance(20);\n        loader.setAnimDur(500);\n        loader.setShowRunningShadow(true);\n        loader.setFirstShadowColor(ContextCompat.getColor(this, R.color.blue_selected));\n        loader.setSecondShadowColor(ContextCompat.getColor(this, R.color.blue_delfault));\n        \n        containerLL.addView(loader);\n```\n\n\n### CircularDotsLoader\n##### Through XML\n```\n\u003ccom.agrawalsuneet.dotsloader.loaders.CircularDotsLoader\n        android:layout_width=\"wrap_content\"\n        android:layout_height=\"wrap_content\"\n        app:loader_animDur=\"100\"\n        app:loader_bigCircleRadius=\"42dp\"\n        app:loader_circleRadius=\"14dp\"\n        app:loader_defaultColor=\"@color/purple_default\"\n        app:loader_firstShadowColor=\"@color/pink_selected\"\n        app:loader_secondShadowColor=\"@color/pink_default\"\n        app:loader_selectedColor=\"@color/purple_selected\"\n        app:loader_showRunningShadow=\"true\" /\u003e\n```\n\n#####  Through Code\n\n* Kotlin\n```\nvar cirLoader = CircularDotsLoader(this)\n        cirLoader.defaultColor = ContextCompat.getColor(this, R.color.blue_delfault)\n        cirLoader.selectedColor = ContextCompat.getColor(this, R.color.blue_selected)\n        cirLoader.bigCircleRadius = 120\n        cirLoader.radius = 40\n        cirLoader.animDur = 100\n        cirLoader.firstShadowColor = ContextCompat.getColor(this, R.color.pink_selected)\n        cirLoader.secondShadowColor = ContextCompat.getColor(this, R.color.purple_selected)\n        cirLoader.showRunningShadow = true\n\n        containerLL.addView(cirLoader)\n        \n```\n\n* Java\n```\nCircularDotsLoader loader = new CircularDotsLoader(this);\n        loader.setDefaultColor(ContextCompat.getColor(this,R.color.blue_delfault));\n        loader.setSelectedColor(ContextCompat.getColor(this,R.color.blue_selected));\n        loader.setBigCircleRadius(80);\n        loader.setRadius(24);\n        loader.setAnimDur(300);\n        loader.setShowRunningShadow(true);\n        loader.setFirstShadowColor(ContextCompat.getColor(this, R.color.blue_selected));\n        loader.setSecondShadowColor(ContextCompat.getColor(this, R.color.blue_delfault));\n```\n\n\n### RotatingCircularDotsLoader\n##### Through XML\n```\n\u003ccom.agrawalsuneet.dotsloader.loaders.RotatingCircularDotsLoader\n        android:layout_width=\"wrap_content\"\n        android:layout_height=\"wrap_content\"\n        app:rotatingcircular_animDur=\"3000\"\n        app:rotatingcircular_bigCircleRadius=\"42dp\"\n        app:rotatingcircular_dotsColor=\"@color/blue_selected\"\n        app:rotatingcircular_dotsRadius=\"14dp\" /\u003e\n```\n\n#####  Through Code\n\n* Kotlin\n```\nval loader = RotatingCircularDotsLoader(this,\n                20, 60, ContextCompat.getColor(this, R.color.red))\n                .apply {\n                    animDuration = 3000\n                }\n\n        containerLL.addView(loader)\n\n```\n\n* Java\n```\nRotatingCircularDotsLoader loader = new RotatingCircularDotsLoader(this,\n                20, 60, ContextCompat.getColor(this, R.color.red));\n        loader.setAnimDuration(3000);\n\n        containerLL.addView(loader);\n```\n\n\u003e For avoiding overlapping in CircularDotsLoader, set BigCircleLoader nearly four times of dotsRadius.\n\n\u003e If the showRunningShadow is true and no firstShadowColor and secondShadowColor provided, it'll take 0.7f and 0.5f alpha of selectedColor\n\n\nPlease take a 2 mins survey to make this library better [here](https://goo.gl/forms/81Cf63sL2X1WhXHl2).\nIt won't take more than 2 mins I promise :) or feel free to drop an email at agrawalsuneet@gmail.com if face any issue or require any additional functionality in it.\n```\nCopyright 2017 Suneet Agrawal\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n```\n","funding_links":[],"categories":["Libraries"],"sub_categories":["Android"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagrawalsuneet%2FDotLoadersPack-Android","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fagrawalsuneet%2FDotLoadersPack-Android","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagrawalsuneet%2FDotLoadersPack-Android/lists"}