{"id":18729310,"url":"https://github.com/hantrungkien/bubble-picker","last_synced_at":"2025-04-12T16:33:38.239Z","repository":{"id":204149975,"uuid":"141555513","full_name":"hantrungkien/Bubble-Picker","owner":"hantrungkien","description":"An easy-to-use animation which can be used for content picking for Android","archived":false,"fork":false,"pushed_at":"2018-09-05T09:37:35.000Z","size":14468,"stargazers_count":25,"open_issues_count":7,"forks_count":9,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-26T11:21:16.396Z","etag":null,"topics":["android-bubble","bubble","bubble-layout","bubble-picker"],"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/hantrungkien.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-07-19T09:22:27.000Z","updated_at":"2024-08-27T14:43:41.000Z","dependencies_parsed_at":null,"dependency_job_id":"80b164e1-a0c9-4c5d-b081-5243ba512d25","html_url":"https://github.com/hantrungkien/Bubble-Picker","commit_stats":null,"previous_names":["hantrungkien/bubble-picker"],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hantrungkien%2FBubble-Picker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hantrungkien%2FBubble-Picker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hantrungkien%2FBubble-Picker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hantrungkien%2FBubble-Picker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hantrungkien","download_url":"https://codeload.github.com/hantrungkien/Bubble-Picker/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248596743,"owners_count":21130756,"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-bubble","bubble","bubble-layout","bubble-picker"],"created_at":"2024-11-07T14:26:39.289Z","updated_at":"2025-04-12T16:33:38.223Z","avatar_url":"https://github.com/hantrungkien.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Bubble-Picker\n\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n[![Platform](https://img.shields.io/badge/platform-android-green.svg)](http://developer.android.com/index.html)\n[![](https://jitpack.io/v/hantrungkien/Bubble-Picker.svg)](https://jitpack.io/#hantrungkien/Bubble-Picker)\n\nRead how we did it [on Medium](https://medium.com/@igalata13/how-to-create-a-bubble-selection-animation-on-android-627044da4854#.ajonc010b)\n\n\u003cimg src=\"shot.gif\"/\u003e\n\n## Requirements\n- Android SDK 16+\n\n## Usage\n\nAdd to your root build.gradle:\n```Groovy\nallprojects {\n\trepositories {\n\t...\n\tmaven { url \"https://jitpack.io\" }\n\t}\n}\n```\n\nAdd the dependency:\n```Groovy\ndependencies {\n\timplementation 'com.github.hantrungkien:Bubble-Picker:v1.0.5.2'\n}\n```\n\n## How to use this library\n\nThis library was developed and extended based on https://github.com/igalata/Bubble-Picker\n\n## Please review Activity in the Sample for both cases \n\n- [Sync Data](https://github.com/hantrungkien/Bubble-Picker/blob/master/app/src/main/java/com/kienht/bubble_picker/SyncActivity.kt)\n\n- [Async Data](https://github.com/hantrungkien/Bubble-Picker/blob/master/app/src/main/java/com/kienht/bubble_picker/AsyncActivity.kt)\n\n## Now: \n- We can set Picker Item selected always is true   \n```\npicker.isAlwaysSelected = false\n\n//or\n\nmBubblePicker.setAlwaysSelected(true);\n\n```\n\n- We can set swipe move speed value (default = 1.5f)\n```\npicker.swipeMoveSpeed = 2f\n\n//or\n\nmBubblePicker.setSwipeMoveSpeed(2f);\n\n```\n\n- [Android-Universal-Image-Loader](https://github.com/nostra13/Android-Universal-Image-Loader): Load image from url\n\n```\n\npickerItem.setIsUseImgUrl(true);\npickerItem.setImgUrl(...)\n\n//use Drawable\npickerItem.setIsUseImgUrl(false);\npickerItem.setImgDrawable(...)\n\n```\n\nAdd `BubblePicker` to your xml layout\n\n```xml\n\u003c?xml version=\"1.0\" encoding=\"utf-8\"?\u003e\n\u003cLinearLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    xmlns:app=\"http://schemas.android.com/apk/res-auto\"\n    android:layout_width=\"match_parent\"\n    android:layout_height=\"match_parent\"\n    android:background=\"@android:color/white\"\n    android:orientation=\"vertical\"\u003e\n\n    \u003ccom.kienht.bubblepicker.rendering.BubblePicker\n        android:id=\"@+id/picker\"\n        android:layout_width=\"match_parent\"\n        android:layout_height=\"match_parent\"\n        app:backgroundColor=\"@android:color/white\" /\u003e\n\n\u003c/LinearLayout\u003e\n```\n\nSpecify the `BubblePickerListener` to get notified about events\n\nKotlin\n```kotlin\npicker.listener = object : BubblePickerListener {\n            override fun onBubbleSelected(item: PickerItem) {\n\n            }\n\n            override fun onBubbleDeselected(item: PickerItem) {\n\n            }\n}\n```\n\nJava\n```java\npicker.setListener(new BubblePickerListener() {\n            @Override\n            public void onBubbleSelected(@NotNull PickerItem item) {\n                \n            }\n\n            @Override\n            public void onBubbleDeselected(@NotNull PickerItem item) {\n\n            }\n});\n```\n\nTo get all selected items use `picker.selectedItems` variable in Kotlin or `picker.getSelectedItems()` method in Java.\n\nFor more usage examples please review the sample app\n\n## Thanks\n\nA special thanks go to [Mr. Lopspower](https://github.com/igalata)\n\n## Known iOS versions of the animation\n\n* https://github.com/Ronnel/BubblePicker\n* https://github.com/efremidze/Magnetic\n\n## LICENCE\n\n    Copyright 2018 Kien Han Trung\n\n    Licensed under the Apache License, Version 2.0 (the \"License\");\n    you may not use this file except in compliance with the License.\n    You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n    Unless required by applicable law or agreed to in writing, software\n    distributed under the License is distributed on an \"AS IS\" BASIS,\n    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n    See the License for the specific language governing permissions and\n    limitations under the License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhantrungkien%2Fbubble-picker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhantrungkien%2Fbubble-picker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhantrungkien%2Fbubble-picker/lists"}