{"id":13643836,"url":"https://github.com/lovetuzitong/MultiImageSelector","last_synced_at":"2025-04-21T06:31:54.745Z","repository":{"id":30050334,"uuid":"33599546","full_name":"lovetuzitong/MultiImageSelector","owner":"lovetuzitong","description":"Deprecated -- Image selector for Android device. Support single choice and multi-choice.","archived":false,"fork":false,"pushed_at":"2020-05-06T02:39:00.000Z","size":4004,"stargazers_count":2960,"open_issues_count":98,"forks_count":801,"subscribers_count":105,"default_branch":"master","last_synced_at":"2025-04-14T13:58:27.776Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Java","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/lovetuzitong.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":"2015-04-08T10:12:50.000Z","updated_at":"2025-04-01T06:29:40.000Z","dependencies_parsed_at":"2022-07-15T20:46:45.934Z","dependency_job_id":null,"html_url":"https://github.com/lovetuzitong/MultiImageSelector","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lovetuzitong%2FMultiImageSelector","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lovetuzitong%2FMultiImageSelector/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lovetuzitong%2FMultiImageSelector/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lovetuzitong%2FMultiImageSelector/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lovetuzitong","download_url":"https://codeload.github.com/lovetuzitong/MultiImageSelector/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250008219,"owners_count":21359949,"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":[],"created_at":"2024-08-02T01:01:53.429Z","updated_at":"2025-04-21T06:31:54.291Z","avatar_url":"https://github.com/lovetuzitong.png","language":"Java","funding_links":[],"categories":["图片","Java"],"sub_categories":[],"readme":"# MultiImageSelector\nImage selector for Android device. Support single choice and multi-choice.\n\n[![](https://jitpack.io/v/lovetuzitong/MultiImageSelector.svg)](https://jitpack.io/#lovetuzitong/MultiImageSelector)\n\n[中文文档](README_zh.md)\n\n###ART\n![Example1](art/example_1.png) ![Select1](art/select_1.png) ![Select2](art/select_2.png) ![Select3](art/select_3.png)\n\n-------------------\n\n###Run Demo\n\n\u003e./gradlew installDebug\n\n###Quick Start\n* Step 0\nAdd module `multi-image-selector` as your dependence. in your `build.gradle` :\n```java\nrepositories {\n    maven { url \"https://jitpack.io\" }\n}\n\ndependencies {\n    compile 'com.github.lovetuzitong:MultiImageSelector:1.2'\n}\n```\n\n* Step 1 \nSet your `AndroidManifest.xml` as below:\n```xml\n\u003cuses-permission android:name=\"android.permission.READ_EXTERNAL_STORAGE\" /\u003e\n\u003cuses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\" /\u003e\n\n\u003capplication\n\n    ...\n\n    \u003c!--Image Selector Entry--\u003e\n    \u003cactivity\n        android:configChanges=\"orientation|screenSize\"\n        android:name=\"me.nereo.multi_image_selector.MultiImageSelectorActivity\" /\u003e\n\u003c/application\u003e\n```\n\n* Step 2\nCall image selector simplest in your code, eg. ( From `version-1.1` )\n\n``` java\n// Multi image selector form an Activity\nMultiImageSelector.create(Context)\n        .start(Activity, REQUEST_IMAGE);\n```\n\nDetail Api.\n``` java\nMultiImageSelector.create(Context)\n        .showCamera(boolean) // show camera or not. true by default\n        .count(int) // max select image size, 9 by default. used width #.multi()\n        .single() // single mode\n        .multi() // multi mode, default mode;\n        .origin(ArrayList\u003cString\u003e) // original select data set, used width #.multi()\n        .start(Activity/Fragment, REQUEST_IMAGE);\n```\n\nAlso support traditional `Intent` :\n``` java\nIntent intent = new Intent(mContext, MultiImageSelectorActivity.class);\n// whether show camera\nintent.putExtra(MultiImageSelectorActivity.EXTRA_SHOW_CAMERA, true);\n// max select image amount\nintent.putExtra(MultiImageSelectorActivity.EXTRA_SELECT_COUNT, 9);\n// select mode (MultiImageSelectorActivity.MODE_SINGLE OR MultiImageSelectorActivity.MODE_MULTI)\nintent.putExtra(MultiImageSelectorActivity.EXTRA_SELECT_MODE, MultiImageSelectorActivity.MODE_MULTI);\n// default select images (support array list)\nintent.putStringArrayListExtra(MultiImageSelectorActivity.EXTRA_DEFAULT_SELECTED_LIST, defaultDataArray);\nstartActivityForResult(intent, REQUEST_IMAGE);\n```\n\n* Step 3\nReceive result in your `onActivityResult` Method. eg.\n```java\n@Override\nprotected void onActivityResult(int requestCode, int resultCode, Intent data) {\n    super.onActivityResult(requestCode, resultCode, data);\n    if(requestCode == REQUEST_IMAGE){\n        if(resultCode == RESULT_OK){\n\t        // Get the result list of select image paths\n            List\u003cString\u003e path = data.getStringArrayListExtra(MultiImageSelectorActivity.EXTRA_RESULT);\n            // do your logic ....\n        }\n    }\n}\n```\n\n* Step 4\nNo more steps, just enjoy. :)\n\n-------------------\n\n###Custom Activity Style\n* Custome your own Activity\n```java\nclass CustomerActivity extends Activity implements MultiImageSelectorFragment.Callback{\n\t@Override\n    protected void onCreate(Bundle savedInstanceState) {\n\t\t// customer logic here...\n\t\tBundle bundle = new Bundle();\n        bundle.putInt(MultiImageSelectorFragment.EXTRA_SELECT_COUNT, mDefaultCount);\n        bundle.putInt(MultiImageSelectorFragment.EXTRA_SELECT_MODE, mode);\n        bundle.putBoolean(MultiImageSelectorFragment.EXTRA_SHOW_CAMERA, isShow);\n        // Add fragment to your Activity\n        getSupportFragmentManager().beginTransaction()\n                .add(R.id.image_grid, Fragment.instantiate(this, MultiImageSelectorFragment.class.getName(), bundle))\n                .commit();\n\t}\n\t@Override\n    public void onSingleImageSelected(String path) {\n        // When select mode set to MODE_SINGLE, this method will received result from fragment\n    }\n\n    @Override\n    public void onImageSelected(String path) {\n        // You can specify your ActionBar behavior here \n    }\n\n    @Override\n    public void onImageUnselected(String path) {\n        // You can specify your ActionBar behavior here \n    }\n\n    @Override\n    public void onCameraShot(File imageFile) {\n        // When user take phone by camera, this method will be called.\n    }\n}\n```\n* Take a glance of `MultiImageSelectorActivity.java`\n\n-------------------\n\n###Change Log\n\n* 2016-5-18\n    1. Added. `JitPack` support\n    2. Added. Convenient way to call image selector. See `Step 2`\n    3. Fixed. Some NPE.\n\n* 2016-1-19\n    1. Fixed. cannot load some 0-size image\n    2. Added. When take a new photo, notify media scanner\n    3. Fixed. Can't take photo on RED-MI\n    4. Fixed. Performance when show Camera-Icon\n\n* 2015-5-5\n    1. Fixed. Can't display some images. (Issue by[sd6352051](https://github.com/sd6352051), [larry](https://github.com/18611480882))\n    2. Fixed. `ListPopupWindow` can not fill parent\n    3. Added. Add checked mask.\n\n* 2015-4-16\n    1. Fixed. Crack when rotate device. (Issue by [@Leminity](https://github.com/Leminity))\n    2. Fixed. PopupListView position error. (Issue by [@Slock](https://github.com/Slock))\n    3. Change. Demo application shortcut.\n    4. Change. Readme file.\n\n* 2015-4-9\n    1. Fixed. When set `EXTRA_SHOW_CAMERA` to `true`, the first grid item onclick event were messed.\n    2. Add. Support initial selected image list.\n\n-------------------\n\n###Thanks\n\n* [square-picasso](https://github.com/square/picasso) A powerful image downloading and caching library for Android \n\n-------------------\n\n###License\n\u003eThe MIT License (MIT)\n\n\u003eCopyright (c) 2015 Nereo\n\n\u003ePermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\n\u003eThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flovetuzitong%2FMultiImageSelector","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flovetuzitong%2FMultiImageSelector","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flovetuzitong%2FMultiImageSelector/lists"}