Awesome Image Picker library will pick images/gifs with beautiful interface. Supports image or gif, Single and Multiple Image selection.

Overview

Awesome Image Picker

Awesome Image Picker library will pick images/gifs with beautiful interface. Supports image or gif, Single and Multiple Image selection.

Awesome Image Picker - Example1 Awesome Image Picker - Example2 Awesome Image Picker - Example3 Awesome Image Picker - Example4

Download Demo APK from HERE

Kindly use the following links to use this library:

In build.gradle (Project)

allprojects {
  repositories {
			...
		maven { url "https://jitpack.io" }
	}
}

And then in the other gradle file(may be your app gradle or your own module library gradle, but never add in both of them to avoid conflict.)

dependencies {
    compile 'com.github.myinnos:AwesomeImagePicker:1.0.2'
}

How to use

Step 1: start intent to open awesome image picker gallery:

Intent intent = new Intent(this, AlbumSelectActivity.class);
intent.putExtra(ConstantsCustomGallery.INTENT_EXTRA_LIMIT, <LIMIT>); // set limit for image selection
startActivityForResult(intent, ConstantsCustomGallery.REQUEST_CODE);

Step 2: onActivityResult : #Example

@Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        if (requestCode == ConstantsCustomGallery.REQUEST_CODE && resultCode == Activity.RESULT_OK && data != null) {
            //The array list has the image paths of the selected images
            ArrayList<Image> images = data.getParcelableArrayListExtra(ConstantsCustomGallery.INTENT_EXTRA_IMAGES);

            for (int i = 0; i < images.size(); i++) {
                Uri uri = Uri.fromFile(new File(images.get(i).path));
                // start play with image uri
                ..........
            }
        }
    }

IMP Note: Require STORAGE_PERMISSIONS if Build.VERSION.SDK_INT >= 23.

Any Queries? or Feedback, please let me know by opening a new issue!

Contact

Prabhakar Thota

If you appreciate my work, consider buying me a cup of to keep me recharged 🤘 by PayPal

License

Copyright 2017 MyInnos

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Comments
  •  java.lang.NoSuchMethodError: No virtual method load(Landroid/net/Uri;)Lcom/bumptech/glide/DrawableTypeRequest;

    java.lang.NoSuchMethodError: No virtual method load(Landroid/net/Uri;)Lcom/bumptech/glide/DrawableTypeRequest;

                                                              java.lang.NoSuchMethodError: No virtual method load(Landroid/net/Uri;)Lcom/bumptech/glide/DrawableTypeRequest; in class Lcom/bumptech/glide/RequestManager; or its super classes (declaration of 'com.bumptech.glide.RequestManager' appears in /data/app/com.techweblearn.onlinechatapp-1/split_lib_dependencies_apk.apk:classes46.dex)
                                                                                    at in.myinnos.awesomeimagepicker.adapter.CustomAlbumSelectAdapter.getView(CustomAlbumSelectAdapter.java:60)
                                                                                    at android.widget.AbsListView.obtainView(AbsListView.java:2346)
                                                                                    at android.widget.GridView.onMeasure(GridView.java:1065)
                                                                                    at android.view.View.measure(View.java:18827)
                                                                                    at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:716)
                                                                                    at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:462)
                                                                                    at android.view.View.measure(View.java:18827)
                                                                                    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5954)
                                                                                    at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
                                                                                    at android.view.View.measure(View.java:18827)
                                                                                    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5954)
                                                                                    at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1465)
                                                                                    at android.widget.LinearLayout.measureVertical(LinearLayout.java:748)
                                                                                    at android.widget.LinearLayout.onMeasure(LinearLayout.java:630)
                                                                                    at android.view.View.measure(View.java:18827)
                                                                                    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5954)
                                                                                    at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
                                                                                    at com.android.internal.policy.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2643)
                                                                                    at android.view.View.measure(View.java:18827)
                                                                                    at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2136)
                                                                                    at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1248)
                                                                                    at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1484)
                                                                                    at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1139)
                                                                                    at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6064)
                                                                                    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:860)
                                                                                    at android.view.Choreographer.doCallbacks(Choreographer.java:672)
                                                                                    at android.view.Choreographer.doFrame(Choreographer.java:608)
                                                                                    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:846)
                                                                                    at android.os.Handler.handleCallback(Handler.java:742)
                                                                                    at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                                    at android.os.Looper.loop(Looper.java:157)
                                                                                    at android.app.ActivityThread.main(ActivityThread.java:5549)
                                                                                    at java.lang.reflect.Method.invoke(Native Method)
                                                                                    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:742)
                                                                                    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:632)
    
    opened by kunal52 6
  • java.lang.NoSuchMethodError: No virtual method load(Landroid/net/Uri;)Lcom/bumptech/glide/DrawableTypeRequest;

    java.lang.NoSuchMethodError: No virtual method load(Landroid/net/Uri;)Lcom/bumptech/glide/DrawableTypeRequest;

    My code : sendImage.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { try{ Intent intent = new Intent(chat.this, AlbumSelectActivity.class); intent.putExtra(ConstantsCustomGallery.INTENT_EXTRA_LIMIT, REQ_CODE_SELECT_IMAGE); startActivityForResult(intent, ConstantsCustomGallery.REQUEST_CODE); } catch(Exception e){ toast(e.toString()); } alert.dismiss(); } });

    Error Log : 07-27 15:58:09.054 27421 27421 E AndroidRuntime java.lang.NoSuchMethodError: No virtual method load(Landroid/net/Uri;)Lcom/bumptech/glide/DrawableTypeRequest; in class Lcom/bumptech/glide/RequestManager; or its super classes (declaration of 'com.bumptech.glide.RequestManager' appears in /data/app/com.sungbin.pubg.m.chatting-vVWfe3uWp2dJ2Bbtr5X6Tg==/base.apk) at in.myinnos.awesomeimagepicker.adapter.CustomAlbumSelectAdapter.getView(CustomAlbumSelectAdapter.java:60) 07-27 15:58:09.054 27421 27421 E AndroidRuntime at android.widget.AbsListView.obtainView(AbsListView.java:3189) 07-27 15:58:09.054 27421 27421 E AndroidRuntime at android.widget.GridView.onMeasure(GridView.java:1102) 07-27 15:58:09.054 27421 27421 E AndroidRuntime at android.view.View.measure(View.java:23297) 07-27 15:58:09.054 27421 27421 E AndroidRuntime at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:715) 07-27 15:58:09.054 27421 27421 E AndroidRuntime at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:461) 07-27 15:58:09.054 27421 27421 E AndroidRuntime at android.view.View.measure(View.java:23297) 07-27 15:58:09.054 27421 27421 E AndroidRuntime at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6928) 07-27 15:58:09.054 27421 27421 E AndroidRuntime at android.widget.FrameLayout.onMeasure(FrameLayout.java:185) 07-27 15:58:09.054 27421 27421 E AndroidRuntime at android.view.View.measure(View.java:23297) 07-27 15:58:09.054 27421 27421 E AndroidRuntime at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6928) 07-27 15:58:09.054 27421 27421 E AndroidRuntime at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1514) 07-27 15:58:09.054 27421 27421 E AndroidRuntime at android.widget.LinearLayout.measureVertical(LinearLayout.java:806) 07-27 15:58:09.054 27421 27421 E AndroidRuntime at android.widget.LinearLayout.onMeasure(LinearLayout.java:685) 07-27 15:58:09.054 27421 27421 E AndroidRuntime at android.view.View.measure(View.java:23297) 07-27 15:58:09.054 27421 27421 E AndroidRuntime at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6928) 07-27 15:58:09.054 27421 27421 E AndroidRuntime at android.widget.FrameLayout.onMeasure(FrameLayout.java:185) 07-27 15:58:09.054 27421 27421 E AndroidRuntime at com.android.internal.policy.DecorView.onMeasure(DecorView.java:899) 07-27 15:58:09.054 27421 27421 E AndroidRuntime at android.view.View.measure(View.java:23297) 07-27 15:58:09.054 27421 27421 E AndroidRuntime at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2849) 07-27 15:58:09.054 27421 27421 E AndroidRuntime at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1879) 07-27 15:58:09.054 27421 27421 E AndroidRuntime at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2134) 07-27 15:58:09.054 27421 27421 E AndroidRuntime at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1748) 07-27 15:58:09.054 27421 27421 E AndroidRuntime at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7785) 07-27 15:58:09.054 27421 27421 E AndroidRuntime at android.view.Choreographer$CallbackRecord.run(Choreographer.java:911) 07-27 15:58:09.054 27421 27421 E AndroidRuntime at android.view.Choreographer.doCallbacks(Choreographer.java:723) 07-27 15:58:09.054 27421 27421 E AndroidRuntime at android.view.Choreographer.doFrame(Choreographer.java:658) 07-27 15:58:09.054 27421 27421 E AndroidRuntime at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:897) 07-27 15:58:09.054 27421 27421 E AndroidRuntime at android.os.Handler.handleCallback(Handler.java:789) 07-27 15:58:09.054 27421 27421 E AndroidRuntime at android.os.Handler.dispatchMessage(Handler.java:98) 07-27 15:58:09.054 27421 27421 E AndroidRuntime at android.os.Looper.loop(Looper.java:164) 07-27 15:58:09.054 27421 27421 E AndroidRuntime at android.app.ActivityThread.main(ActivityThread.java:6944) 07-27 15:58:09.054 27421 27421 E AndroidRuntime at java.lang.reflect.Method.invoke(Native Method) 07-27 15:58:09.054 27421 27421 E AndroidRuntime at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327) 07-27 15:58:09.054 27421 27421 E AndroidRuntime at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)

    opened by jisungbin 3
  • Translations

    Translations

    First of all, thank you for making this. It's the first library of its kind that I found actually works with Marshmallow.

    My only issue with it is the strings - is there a way for us to change them as a user of the library? I like to have my app ready for translation and this library would prevent some strings from being able to be translated. For example, the message that appears when the user selects too many photos.

    Many thanks in advance.

    opened by Karljoones 2
  • Throws IllegalArgument exception in Lollipop

    Throws IllegalArgument exception in Lollipop

    Exception java.lang.RuntimeException: Unable to start activity ComponentInfo{com.vitech.storiesofcommonman/in.myinnos.awesomeimagepicker.activities.AlbumSelectActivity}: java.lang.IllegalArgumentException: Wrong state class, expecting View State but received class android.support.v7.widget.Toolbar$d instead. This usually happens when two views of different type have the same id in the same hierarchy. This view's id is id/toolbar. Make sure other views do not use the same id.

    Yes there was another toolbar with Id toolbar but the same gets thrown even after I changed its ID to tool_bar.

    This bug appears only in lollipop and it started appearing after i used progaurd.

    opened by TeMuNiDe 2
  • Bug

    Bug

    why throw Exception when rotate screen at image picker Activity !

    FATAL EXCEPTION: main Process: scit.com.appointmentsmanagmentsys, PID: 25427 java.lang.RuntimeException: Unable to start activity ComponentInfo{scit.com.appointmentsmanagmentsys/in.myinnos.awesomeimagepicker.activities.AlbumSelectActivity}: java.lang.IllegalArgumentException: Wrong state class, expecting View State but received class android.support.v7.widget.Toolbar$SavedState instead. This usually happens when two views of different type have the same id in the same hierarchy. This view's id is id/toolbar. Make sure other views do not use the same id. at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2461) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2521) at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:4164) at android.app.ActivityThread.access$1000(ActivityThread.java:150) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1389) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5517) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) Caused by: java.lang.IllegalArgumentException: Wrong state class, expecting View State but received class android.support.v7.widget.Toolbar$SavedState instead. This usually happens when two views of different type have the same id in the same hierarchy. This view's id is id/toolbar. Make sure other views do not use the same id.

    bug 
    opened by amer-alzibak 2
  • Crash when change screen orientation

    Crash when change screen orientation

    Crash when change screen orientation..

    I've fix this issue, when I add this code in manifest. <activity android:name="in.myinnos.awesomeimagepicker.activities.AlbumSelectActivity" android:screenOrientation="portrait" /> <activity android:name="in.myinnos.awesomeimagepicker.activities.ImageSelectActivity" android:screenOrientation="portrait" />

    opened by firdausmaulan 1
  • Update Glide Version

    Update Glide Version

    No virtual method load(Landroid/net/Uri;)Lcom/bumptech/glide/DrawableTypeRequest; in class Lcom/bumptech/glide/j; or its super classes (declaration of 'com.bumptech.glide.j' appears in

    opened by ayaz56 1
  • [ImgBot] optimizes images

    [ImgBot] optimizes images

    Beep boop. Your images are optimized!

    Your image file size has been reduced by 6% 🎉

    Details

    | File | Before | After | Percent reduction | |:--|:--|:--|:--| | /app/src/main/res/mipmap-xxxhdpi/ic_launcher.png | 10.24kb | 9.45kb | 7.73% | | /app/src/main/res/mipmap-xxhdpi/ic_launcher.png | 7.54kb | 7.04kb | 6.66% | | /app/src/main/res/mipmap-xhdpi/ic_launcher.png | 4.73kb | 4.46kb | 5.76% | | /app/src/main/res/mipmap-hdpi/ic_launcher.png | 3.34kb | 3.24kb | 2.90% | | /app/src/main/res/mipmap-mdpi/ic_launcher.png | 2.15kb | 2.10kb | 2.40% | | | | | | | Total : | 28.00kb | 26.28kb | 6.12% |


    📝docs | :octocat: repo | 🙋issues | 🏅swag | 🏪marketplace

    opened by imgbot[bot] 0
  • C:\Users\Admin\.gradle\caches\transforms-1\files-1.1\AwesomeImagePicker-1.0.2.aar\b60625765eb2a137a082d01582b2b222\res\layout\grid_view_item_album_select.xml

    C:\Users\Admin\.gradle\caches\transforms-1\files-1.1\AwesomeImagePicker-1.0.2.aar\b60625765eb2a137a082d01582b2b222\res\layout\grid_view_item_album_select.xml

    this type of error come after updating version 26

    Error:error: resource color/multiple_image_select_albumTextBackground (aka com.styleapp:color/multiple_image_select_albumTextBackground) not found. Error:error: resource color/multiple_image_select_primary (aka com.styleapp:color/multiple_image_select_primary) not found. Error:resource color/multiple_image_select_albumTextBackground (aka com.styleapp:color/multiple_image_select_albumTextBackground) not found. Error:resource color/multiple_image_select_primary (aka com.styleapp:color/multiple_image_select_primary) not found. Error:failed linking file resources. Error:java.util.concurrent.ExecutionException: java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details Error:java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details Error:com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details

    opened by bhoomikaPrajapati 0
Releases(1.0.2)
Owner
Prabhakar Thota
Mobile Engineer[AIML], UI/UX. I believe in the quote which says "Creativity is thinking up new things. Innovation is doing new things." Happy Coding :)
Prabhakar Thota
RoundedImageView-Library 0.9 0.0 Java To set single or multiple corners on Image Views.

RoundedImageView-Library Rounded ImageView Android Library, to set single or multiple corners on imageview. Screenshot Usage Step 1. Add the JitPack r

Dushyant Mainwal 15 Sep 2, 2020
A small customizable library useful to handle an gallery image pick action built-in your app. :sunrise_over_mountains::stars:

Louvre A small customizable image picker. Useful to handle an gallery image pick action built-in your app. *Images from Google Image Search Installati

André Mion 640 Nov 19, 2022
An implementation of a gif decoder written 100% in Kotlin, plus an associated Drawable for Android

An implementation of a gif decoder written 100% in Kotlin, plus an associated Drawable for Android

Benoît Vermont 41 Nov 19, 2022
This is an Image slider with swipes, Here we used Volley to Image load URL's from JSON! Here we make it very easy way to load images from Internet and We customized the description font style(OpenSans).

ImageSliderWithSwipes This is an Image slider with swipes, Here we used Volley to load URL's from JSON! Here we make it very easy way to load images f

Prabhakar Thota 44 May 31, 2021
Android library project for cropping images

I guess people are just cropping out all the sadness An Android library project that provides a simple image cropping Activity, based on code from AOS

Jamie McDonald 4.5k Jan 7, 2023
Custom view for circular images in Android while maintaining the best draw performance

CircularImageView Custom view for circular images in Android while maintaining the best draw performance Usage To make a circular ImageView, add this

Pkmmte Xeleon 1.2k Dec 28, 2022
Polygon shaped images

ShapeShifter Provides Polygon shaped imageView Screenshot Usage Step 1. Add the JitPack repository to your build file allprojects { repositori

Dushyant Mainwal 24 Oct 20, 2020
Note saver app which can save images as well with customization.

Note-With-Images-App Note saver app which can save images as well with customization. Demo final.demo.mp4 What i used? Kotlin Paging 3 library flow li

agam koradiya 9 Oct 31, 2022
PixaPay - Images Search client

PixaPay - Images Search client Getting started Signup or Login into Pixabay for getting API_KEY Add APY_KEY="Your_Key_Here" and BASE_URL="https://pixa

Mohamed Ibrahim 6 Nov 6, 2022
Library to save image locally and shows options to open and share !

Image Save and Share Library to save image locally and shows options to open and share ! Download Demo APK from HERE Kindly use the following links to

Prabhakar Thota 27 Apr 18, 2022
Customizable Android full screen image viewer for Fresco library supporting "pinch to zoom" and "swipe to dismiss" gestures. Made by Stfalcon

This project is no longer supported. If you're able to switch from Fresco to any other library that works with the Android's ImageView, please migrate

Stfalcon LLC 1.8k Dec 19, 2022
Dali is an image blur library for Android. It contains several modules for static blurring, live blurring and animations.

Dali Dali is an image blur library for Android. It is easy to use, fast and extensible. Dali contains several modules for either static blurring, live

Patrick Favre-Bulle 1k Dec 1, 2022
An Android transformation library providing a variety of image transformations for Coil, Glide, Picasso, and Fresco.

An Android transformation library providing a variety of image transformations for Coil, Glide, Picasso, and Fresco.

Daichi Furiya 257 Jan 2, 2023
An android image compression library.

Compressor Compressor is a lightweight and powerful android image compression library. Compressor will allow you to compress large photos into smaller

Zetra 6.7k Dec 31, 2022
A simple image cropping library for Android.

SimpleCropView The SimpleCropView is an image cropping library for Android. It simplifies your code for cropping image and provides an easily customiz

Issei Aoki 2.5k Dec 28, 2022
An image resizing library for Android

Resizer Inspired by zetbaitsu's Compressor, Resizer is a lightweight and easy-to-use Android library for image scaling. It allows you to resize an ima

Kakit Ho 426 Dec 22, 2022
Simple android image popup Library

Android Image Popup Show image as a popup on a click event or any event. Simply set the image as drawable and thats it!!!. And also you can set width,

Chathura Lakmal 64 Nov 15, 2022
Image loading library for Android

Image Loader Image loader library for Android. Deprecated. See Glide. Features Image transformations Automatic memory and storage caching Ability to l

Yuriy Budiyev 19 May 28, 2022
A library for image manipulation with power of renderScript which is faster than other ordinary solutions.

Pixl is a library for image manipulation with power of renderScript which is faster than other ordinary solutions, currently it includes three basic scripts, brightness, contrast, saturation.

Jibran Iqbal 20 Jan 23, 2022