{"id":3539,"url":"https://github.com/esafirm/android-image-picker","last_synced_at":"2025-05-15T16:04:25.967Z","repository":{"id":12015614,"uuid":"70986819","full_name":"esafirm/android-image-picker","owner":"esafirm","description":"Image Picker for Android 🤖","archived":false,"fork":false,"pushed_at":"2024-07-24T01:49:10.000Z","size":942,"stargazers_count":1126,"open_issues_count":63,"forks_count":328,"subscribers_count":23,"default_branch":"main","last_synced_at":"2025-04-07T20:12:14.632Z","etag":null,"topics":["android","camera","gallery","hacktoberfest","image-picker","picker-library"],"latest_commit_sha":null,"homepage":"","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/esafirm.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2016-10-15T12:35:19.000Z","updated_at":"2025-03-28T07:18:27.000Z","dependencies_parsed_at":"2024-01-02T21:21:00.599Z","dependency_job_id":"1c3f703a-d126-47e5-b54c-95c5483d2189","html_url":"https://github.com/esafirm/android-image-picker","commit_stats":null,"previous_names":[],"tags_count":73,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esafirm%2Fandroid-image-picker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esafirm%2Fandroid-image-picker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esafirm%2Fandroid-image-picker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esafirm%2Fandroid-image-picker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/esafirm","download_url":"https://codeload.github.com/esafirm/android-image-picker/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254374407,"owners_count":22060610,"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","camera","gallery","hacktoberfest","image-picker","picker-library"],"created_at":"2024-01-05T20:16:44.362Z","updated_at":"2025-05-15T16:04:25.945Z","avatar_url":"https://github.com/esafirm.png","language":"Kotlin","funding_links":["https://ko-fi.com/M4M41RRE0'"],"categories":["Kotlin","Android","图片","Libraries"],"sub_categories":["GUI"],"readme":"\u003cp align=\"center\"\u003e\n\t\u003cimg  src=\"https://github.com/esafirm/android-image-picker/blob/master/art/logo.png?raw=true\" width=\"140\" height=\"140\"/\u003e \n\u003c/p\u003e\n\n\u003ch2 align=\"center\"\u003eAndroid Image Picker\u003c/h2\u003e\n\u003ch4 align=\"center\"\u003eNo config yet highly configurable image picker for Android\u003c/h3\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://android-arsenal.com/details/1/4618\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Android%20Arsenal-ImagePicker-brightgreen.svg?style=flat\" alt=\"Android Arsenal - ImagePicker\" /\u003e\n  \u003c/a\u003e\n\n  \u003ca href=\"https://jitpack.io/#esafirm/android-image-picker\"\u003e\n    \u003cimg src=\"https://jitpack.io/v/esafirm/android-image-picker.svg\" alt=\"jitpack - android image picker\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n# Screenshot\n\n\u003cdetails\u003e\n\t\u003csummary\u003eClick to see how image picker looks…\u003c/summary\u003e\n\u003cimg \nsrc=\"https://raw.githubusercontent.com/esafirm/android-image-picker/master/art/ss.gif\" height=\"460\" width=\"284\"/\u003e\n\u003c/details\u003e\n\n## Download\n\nAdd this to your project's `build.gradle`\n\n```groovy\nallprojects {\n    repositories {\n        maven { url \"https://jitpack.io\" }\n    }\n}\n```\n\nAnd add this to your module's `build.gradle`\n\n```groovy\ndependencies {\n    implementation 'com.github.esafirm:android-image-picker:x.y.z'\n}\n```\n\nchange `x.y.z` to version in the [release page](https://github.com/esafirm/android-image-picker/releases)\n\n# Usage\n\nFor full example, please refer to the `sample` app.\n\nAlso you can browse the issue labeled as\nquestion [here](https://github.com/esafirm/android-image-picker/issues?utf8=%E2%9C%93\u0026q=label%3Aquestion+)\n\n## Start image picker activity\n\nThe simplest way to start\n\n```kotlin\nval launcher = registerImagePicker {\n    // handle result here\n}\n\nlauncher.launch()\n```\n\nComplete features of what you can do with ImagePicker\n\n```kotlin\nval config = ImagePickerConfig {\n    mode = ImagePickerMode.SINGLE // default is multi image mode\n    language = \"in\" // Set image picker language\n    theme = R.style.ImagePickerTheme\n\n    // set whether pick action or camera action should return immediate result or not. Only works in single mode for image picker\n    returnMode = if (returnAfterCapture) ReturnMode.ALL else ReturnMode.NONE\n\n    isFolderMode = folderMode // set folder mode (false by default)\n    isIncludeVideo = includeVideo // include video (false by default)\n    isOnlyVideo = onlyVideo // include video (false by default)\n    arrowColor = Color.RED // set toolbar arrow up color\n    folderTitle = \"Folder\" // folder selection title\n    imageTitle = \"Tap to select\" // image selection title\n    doneButtonText = \"DONE\" // done button text\n    limit = 10 // max images can be selected (99 by default)\n    isShowCamera = true // show camera or not (true by default)\n    savePath = ImagePickerSavePath(\"Camera\") // captured image directory name (\"Camera\" folder by default)\n    savePath =\n        ImagePickerSavePath(Environment.getExternalStorageDirectory().path, isRelative = false) // can be a full path\n\n    excludedImages = images.toFiles() // don't show anything on this selected images\n    selectedImages = images  // original selected images, used in multi mode\n}\n```\n\nIf you want to call it outside `Activity` or `Fragment`, you can get the `Intent` with `createImagePickerIntent`\n\n\u003e Please note: handling in `onActivityResult` is not recommended since it's already deprecated in favor of the new\n\u003e result API\n\n```kotlin\nval intent = createImagePickerIntent(context, ImagePickerConfig())\nstartActivityForResult(intent, RC_IMAGE_PICKER)\n```\n\n## Receive result\n\nwhen you're done picking images, result will be returned on launcher callback with type `List\u003cImage\u003e`. This list cannot\nbe null but can be empty\n\n```kotlin\nval launcher = registerImagePicker { result: List\u003cImage\u003e -\u003e\n    result.forEach { image -\u003e\n        println(image)\n    }\n}    \n```\n\n## Camera Only\n\nUse `CameraOnlyConfig` instead of `ImagePickerConfig`\n\n```kotlin\nval launcher = registerImagePicker { }\nlauncher.launch(CameraOnlyConfig())\n```\n\nYou also still can use the `DefaultCameraModule` but discouraged to do it.\n\n# Wiki\n\n- [Custom components](https://github.com/esafirm/android-image-picker/blob/main/docs/custom_components.md)\n- [Using another image library](https://github.com/esafirm/android-image-picker/blob/main/docs/another_image_library.md)\n- [Return mode](https://github.com/esafirm/android-image-picker/blob/main/docs/return_mode.md)\n- [Save location](https://github.com/esafirm/android-image-picker/blob/main/docs/save_location.md)\n\n# Version 2.x.x\n\nIf you still use the previous version, you can check `2.x` branch\nin [here](https://github.com/esafirm/android-image-picker/tree/2.x)\n\n# Support Me!\n\nI would make myself more commited to this repo and OSS works in general.\n\nWould you help me achieving this goals?\n\n\u003ca href='https://ko-fi.com/M4M41RRE0' target='_blank'\u003e\u003cimg height='36' style='border:0px;height:36px;' src='https://cdn.ko-fi.com/cdn/kofi4.png?v=2' border='0' alt='Buy Me a Coffee at ko-fi.com' /\u003e\u003c/a\u003e\n\n# Credits\n\n- AIP Logo by [anaufalm](https://github.com/anaufalm)\n\n# License\n\nMIT @ Esa Firman\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fesafirm%2Fandroid-image-picker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fesafirm%2Fandroid-image-picker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fesafirm%2Fandroid-image-picker/lists"}