{"id":19162358,"url":"https://github.com/agilie/circularpicker","last_synced_at":"2025-10-06T13:47:21.629Z","repository":{"id":71905263,"uuid":"95007118","full_name":"agilie/CircularPicker","owner":"agilie","description":"CircularPicker is helpful for creating a controller aimed to manage any calculated parameter.","archived":false,"fork":false,"pushed_at":"2017-07-17T14:50:09.000Z","size":428,"stargazers_count":84,"open_issues_count":2,"forks_count":11,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-05-07T10:51:27.260Z","etag":null,"topics":["circular","datepicker","datetime","kotlin","kotlin-android","picker","timepicker","widget"],"latest_commit_sha":null,"homepage":"https://agilie.com","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/agilie.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-06-21T13:29:01.000Z","updated_at":"2024-04-12T09:13:00.000Z","dependencies_parsed_at":null,"dependency_job_id":"d917b40f-f284-41aa-8281-3f6d39c8c5b5","html_url":"https://github.com/agilie/CircularPicker","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/agilie/CircularPicker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agilie%2FCircularPicker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agilie%2FCircularPicker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agilie%2FCircularPicker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agilie%2FCircularPicker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/agilie","download_url":"https://codeload.github.com/agilie/CircularPicker/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agilie%2FCircularPicker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278621842,"owners_count":26017253,"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","status":"online","status_checked_at":"2025-10-06T02:00:05.630Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["circular","datepicker","datetime","kotlin","kotlin-android","picker","timepicker","widget"],"created_at":"2024-11-09T09:10:30.053Z","updated_at":"2025-10-06T13:47:21.613Z","avatar_url":"https://github.com/agilie.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n\n\u003cimg src=\"https://user-images.githubusercontent.com/1777595/28011162-0969de96-656a-11e7-976f-90e9347bcdb5.png\" alt=\"CircularPicker\" title=\"CircularPicker\" width=\"500\"/\u003e\n\u003c/p\u003e\n\n\u003cp\u003e\n\n\u003cp align=\"center\"\u003e\n\n\u003ca href=\"https://www.agilie.com?utm_source=github\u0026utm_medium=referral\u0026utm_campaign=Git_Swift\u0026utm_term=AGVolumeControlView\"\u003e\n\u003cimg src=\"https://img.shields.io/badge/Made%20by-Agilie-green.svg?style=flat\" alt=\"Made by Agilie\"\u003e\n\u003c/a\u003e\n\n\u003ca href='https://bintray.com/agilie/maven/CircularPicker/_latestVersion'\u003e\n\u003cimg src='https://api.bintray.com/packages/agilie/maven/CircularPicker/images/download.svg'\u003e\n\u003c/a\u003e\n\n\u003ca href='https://raw.githubusercontent.com/agilie/CircularPicker/master/LICENSE.txt'\u003e\n\u003cimg src='https://img.shields.io/badge/license-MIT-blue.svg' alt='GitHub license'\u003e\n\u003c/a\u003e\n\n\u003c/p\u003e\n\nWe are pleased to offer you our new free lightweight plugin named CircularPicker.\n\nCircularPicker is helpful for creating a controller aimed to manage any calculated parameter. For example, it can be used as a countdown timer or for keeping the score in the game interface.\n\nCircularPicker can be customized to meet your individual requirements. The developer can set the number of the controllers and their design by selecting a color, gradient and other similar parameters. In addition, it’s possible to specify the transition type for showing controllers on the screen.\n### Demo\n\u003cimg src=\"https://user-images.githubusercontent.com/17047537/27594456-777bb7b8-5b62-11e7-8e45-2bbe695b3525.gif\"\u003e  \u003cimg src=\"https://user-images.githubusercontent.com/17047537/27594534-b350add4-5b62-11e7-987e-fc558eb8ee21.gif\"\u003e\n\n## Link to iOS repo\n\nCheck out our iOS [CircularPicker](https://github.com/agilie/AGCircularPicker/) also!\n\n## Example\nTo run the example project, clone the repo and run [sample](TimePickerExample/).\n\n### How does it work?\n\nJust add CircularPickerPagerContainer which contains CircularPickerViewPager to your layout file.\n````xml\n\u003ccom.agilie.circularpicker.ui.view.CircularPickerPagerContainer\n        android:id=\"@+id/timePickerPagerContainer\"\n        android:layout_width=\"match_parent\"\n        android:layout_height=\"350dp\"\u003e\n\n        \u003ccom.agilie.circularpicker.ui.view.CircularPickerViewPager\n            android:id=\"@+id/view_pager\"\n            android:layout_width=\"300dp\"\n            android:layout_height=\"match_parent\"\n            android:layout_centerHorizontal=\"true\"\n            android:layout_gravity=\"center_horizontal\"\u003e\n\n        \u003c/com.agilie.circularpicker.ui.view.CircularPickerViewPager\u003e\n\u003c/com.agilie.circularpicker.ui.view.CircularPickerPagerContainer\u003e\n````\nAlso you can use only CircularPickerView\n````xml\n\u003ccom.agilie.circularpicker.ui.view.CircularPickerView\n        android:layout_width=\"match_parent\"\n        android:layout_height=\"match_parent\" /\u003e\n````\n\nThe library contains three key elements: \n1. CircularPickerPagerContainer - a custom container to show more than one page at a time.\n2. CircularPickerViewPager - a custom ViewPager in which we define the region in the view element for swipe action.\n3. CircularPickerView - a controller aimed to manage any calculated parameter.\u003c/br\u003e\nCircularPickerView has the following settings:\n````kotlin\nvar colors : intArrayOf\nvar gradientAngle : Int \nvar maxLapCount : Int           // number of laps (required)\nvar maxValue : Int              // total values (required)\nvar currentValue : Int \nvar centeredTextSize : Float \nvar centeredText : String \nvar centeredTextColor: Int\nvar centeredTypeFace : TypeFace\nvar valueChangedListener : object\nvar colorChangedListener : object\n````\n````xml\n\u003cdeclare-styleable name=\"CircularPickerView\"\u003e\n        \u003cattr name=\"circularPickerSpace\" format=\"float\" /\u003e\n        \u003cattr name=\"pullUp\" format=\"float\" /\u003e\n    \u003c/declare-styleable\u003e\n````\n\n### Our example of using CircularPicker\nLet's see how we can use it in practice.\nIn our *layout.xml* we added CircularPickerPagerContainer which contains CircularPickerViewPager, then created CircularPickerView in the Activity and set up parameters:\n\n````gradle\nСircularPickerView(context).apply {\n            colors = (intArrayOf(\n                    Color.parseColor(\"#00EDE9\"),\n                    Color.parseColor(\"#0087D9\"),\n                    Color.parseColor(\"#8A1CC3\")))\n            gradientAngle = 220\n            maxLapCount = 2\n            currentValue = 13\n            maxValue = 24\n            centeredTextSize = 60f\n            centeredText = \"Hours\"\n ````\nHere are also two callback interfaces provided with _CircularPickerView_. Use them to handle changes made during the interaction with the component: \n\n````kotlin\ninterface ValueChangedListener {\n    fun onValueChanged(value: Int)\n}\n\ninterface ColorChangedListener {\n    fun onColorChanged(r: Int, g: Int, b: Int)\n}\n````\n\n## Usage\n\n### Gradle\n\nAdd dependency in your `build.gradle` file:\n````gradle\ncompile 'com.agilie:circular-picker:1.0'\n````\n\n### Maven\nAdd rependency in your `.pom` file:\n````xml\n\u003cdependency\u003e\n  \u003cgroupId\u003ecom.agilie\u003c/groupId\u003e\n  \u003cartifactId\u003ecircular-picker\u003c/artifactId\u003e\n  \u003cversion\u003e1.0\u003c/version\u003e\n  \u003ctype\u003epom\u003c/type\u003e\n\u003c/dependency\u003e\n````\n\n## Requirements\n\nCircularPicker works on Android API 16+\n\n## Troubleshooting\n\nProblems? Check the [Issues](https://github.com/agilie/AGMobileGift/issues) block\nto find the solution or create an new issue that we will fix asap.\n\n\n## Author\n\nThis library is open-sourced by [Agilie Team](https://www.agilie.com?utm_source=github\u0026utm_medium=referral\u0026utm_campaign=Git_Android_Kotlin\u0026utm_term=CircularPicker) \u003cinfo@agilie.com\u003e\n\n## Contributors\n\n- [Eugene Surkov](https://github.com/ukevgen)\n- [Roman Kapshuk](https://github.com/RomanKapshuk)\n\n## Contact us\nIf you have any questions, suggestions or just need a help with web or mobile development, please email us at\u003cbr/\u003e \u003candroid@agilie.com\u003e\u003cbr/\u003e\nYou can ask us anything from basic to complex questions. \u003cbr/\u003e\nWe will continue publishing new open-source projects. Stay with us, more updates will follow!\u003cbr/\u003e\n\n## License\n\nThe [MIT](LICENSE.md) License (MIT) Copyright © 2017 [Agilie Team](https://www.agilie.com?utm_source=github\u0026utm_medium=referral\u0026utm_campaign=Git_Android_Kotlin\u0026utm_term=CircularPicker)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagilie%2Fcircularpicker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fagilie%2Fcircularpicker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagilie%2Fcircularpicker/lists"}