darsh2 / multipleimageselect Goto Github PK
View Code? Open in Web Editor NEWAndroid library that provides for multiple image selection.
License: Apache License 2.0
Android library that provides for multiple image selection.
License: Apache License 2.0
How can I change the color of the toolbar icons? I want to have a white toolbar, but now the icons are invisible because they're also white.
Is there a way to liniti this to show only a specific album?
Grant permission button does't do anything if user opt for never ask me again and deny read storage permission. We can take user to application detail page where user can change permission.
java.lang.NoSuchMethodError: No virtual method load(Ljava/lang/String;)Lcom/bumptech/glide/DrawableTypeRequest; in class Lcom/bumptech/glide/RequestManager; or its super classes (declaration of 'com.bumptech.glide.RequestManager' appears in /data/app/xx.xxx.xx-OJFhWIjQX9_LdfytqTJqEQ==/split_lib_dependencies_apk.apk)
at com.darsh.multipleimageselect.adapters.CustomAlbumSelectAdapter.getView(CustomAlbumSelectAdapter.java:44)
at android.widget.AbsListView.obtainView(AbsListView.java:3189)
at android.widget.GridView.onMeasure(GridView.java:1102)
at android.view.View.measure(View.java:23296)
at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:715)
at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:461)
at android.view.View.measure(View.java:23296)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6928)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
at android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:141)
at android.view.View.measure(View.java:23296)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6928)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
at android.view.View.measure(View.java:23296)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6928)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
at android.view.View.measure(View.java:23296)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6928)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1514)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:806)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:685)
at android.view.View.measure(View.java:23296)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6928)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
at com.android.internal.policy.DecorView.onMeasure(DecorView.java:899)
at android.view.View.measure(View.java:23296)
at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2886)
at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1916)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2171)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1785)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7833)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:911)
at android.view.Choreographer.doCallbacks(Choreographer.java:723)
at android.view.Choreographer.doFrame(Choreographer.java:658)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:897)
at android.os.Handler.handleCallback(Handler.java:789)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6944)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
The library shouldn't really have an app_name
.
If the main app has an app_name
defined (with the same string in the default values), it is overwritten for the other languages by the library.
For some reason the MultiSelect Activity is automatically setting mycustom actionbar as its actionbar, which i dont want
Hi @darsh2 ,
I want to use default app theme, What should I do ? Check MultipleImageSelectTheme style.
Hi darsh,
For now, we have an option to set a limit for user image selection. In this case, user can select no of images more than limit but toast show to user to unselect images that are more than limit but I want to make user unable to select images more than limit. Is it possible?
thanks..
Hi, If user select more then configured images, then after pressing "ADD" button, "Can select maximum of 0 images" toast displaying. Instead of that, It should display configured number.
HI, Thanks for the library.working fine.
But gradle , compile obsolete issue is coming
thanks
java.lang.IllegalArgumentException: the bind value at index 1 is null
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:172)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:142)
at android.content.ContentProviderProxy.query(ContentProviderNative.java:472)
at android.content.ContentResolver.query(ContentResolver.java:1201)
at android.content.ContentResolver.query(ContentResolver.java:1127)
at android.content.ContentResolver.query(ContentResolver.java:1083)
at com.darsh.multipleimageselect.activities.ImageSelectActivity$ImageLoaderRunnable.run(ImageSelectActivity.java:439)
at java.lang.Thread.run(Thread.java:923)
Good afternoon.
We're getting more feedback from our users. Can you please have a look at those?
java.lang.NullPointerException
com.darsh.multipleimageselect.activities.AlbumSelectActivity$AlbumLoaderRunnable.run(AlbumSelectActivity.java:218)
java.lang.Thread.run(Thread.java:838)
java.lang.NullPointerException
com.darsh.multipleimageselect.activities.AlbumSelectActivity$AlbumLoaderRunnable.run(AlbumSelectActivity.java:253)
java.lang.Thread.run(Thread.java:848)
java.lang.NullPointerException: Attempt to invoke virtual method 'void com.darsh.multipleimageselect.adapters.CustomAlbumSelectAdapter.setLayoutParams(int)' on a null object reference
com.darsh.multipleimageselect.activities.AlbumSelectActivity.orientationBasedUI(AlbumSelectActivity.java:144)
com.darsh.multipleimageselect.activities.AlbumSelectActivity.onConfigurationChanged(AlbumSelectActivity.java:135)
android.app.ActivityThread.performConfigurationChanged(ActivityThread.java:4170)
android.app.ActivityThread.handleConfigurationChanged(ActivityThread.java:4248)
android.app.ActivityThread$H.handleMessage(ActivityThread.java:1458)
android.os.Handler.dispatchMessage(Handler.java:102)
android.os.Looper.loop(Looper.java:135)
android.app.ActivityThread.main(ActivityThread.java:5422)
java.lang.reflect.Method.invoke(Native Method)
java.lang.reflect.Method.invoke(Method.java:372)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:914)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:707)
This is an error that i am getting again and again, please let me know how can i resolve it
Exception java.lang.NullPointerException: Attempt to invoke interface method 'int android.database.Cursor.getCount()' on a null object reference
com.darsh.multipleimageselect.activities.ImageSelectActivity$ImageLoaderRunnable.run (ImageSelectActivity.java:439)
java.lang.Thread.run (Thread.java:818)
Thanks
Hello Please add read external storage permission for all device version.i cant read images from device when sdk build it below ics,.
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.xfactory.in/com.darsh.multipleimageselect.activities.AlbumSelectActivity}: java.lang.ClassCastException: android.widget.LinearLayout cannot be cast to android.support.v7.widget.Toolbar
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2449)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2509)
at android.app.ActivityThread.access$1000(ActivityThread.java:153)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1373)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:5523)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:629)
Caused by: java.lang.ClassCastException: android.widget.LinearLayout cannot be cast to android.support.v7.widget.Toolbar
at com.darsh.multipleimageselect.activities.AlbumSelectActivity.onCreate(AlbumSelectActivity.java:69)
at android.app.Activity.performCreate(Activity.java:6303)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1108)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2402)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2509)
at android.app.ActivityThread.access$1000(ActivityThread.java:153)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1373)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:5523)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:629)
hello, I would like to customise the text size and font style. could you pls help me this.
It's much better to have it as a gradle dependency. Thanks!
How to restrict the user and say the image size is greater than 5MB ..Please choose the file with lower size
Steps to reproduce:
A new instance of AlbumSelectActivity opens. This is one of a few ways of reproducing this bug. It occurs only when there is an orientation change on using the library. Log reads:
Duplicate finish request for ActivityRecord{1579d8c u0 com.darsh.example.sample/com.darsh.multipleimageselect.activities.AlbumSelectActivity t1162 f}
Bug occured in commit 09bf41c on altering permission request logic.
Temporary fix: Use any of the released versions of library or any commit on or before commit 088585b.
Hi, is there a way to implement the select all button ?
Yesterday it was working fine but today when I check then onActivityResult is not called.
I'm using this on fragment.
Here is my code:
Intent intent = new Intent(getContext(), AlbumSelectActivity.class);
intent.putExtra(Constants.INTENT_EXTRA_LIMIT, 3);
getActivity().startActivityForResult(intent, Constants.REQUEST_CODE);
Right now it's not working at android 6.0.
http://developer.android.com/intl/pt-br/training/permissions/requesting.html
I am getting this crash in Android 6 users.
Fatal Exception: java.lang.RuntimeException: Failure delivering result ResultInfo{who=@android:requestPermissions:, request=23, result=0, data=Intent { act=android.content.pm.action.REQUEST_PERMISSIONS (has extras) }} to activity {com.haraj.app/com.darsh.multipleimageselect.activities.AlbumSelectActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'android.os.Message android.os.Handler.obtainMessage()' on a null object reference
at android.app.ActivityThread.deliverResults(ActivityThread.java:4921)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:4964)
at android.app.ActivityThread.access$1600(ActivityThread.java:221)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1848)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:158)
at android.app.ActivityThread.main(ActivityThread.java:7225)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
Caused by java.lang.NullPointerException: Attempt to invoke virtual method 'android.os.Message android.os.Handler.obtainMessage()' on a null object reference
at com.darsh.multipleimageselect.activities.AlbumSelectActivity.onRequestPermissionsResult(AlbumSelectActivity.java:207)
at android.app.Activity.dispatchRequestPermissionsResult(Activity.java:7263)
at android.app.Activity.dispatchActivityResult(Activity.java:7141)
at android.app.ActivityThread.deliverResults(ActivityThread.java:4917)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:4964)
at android.app.ActivityThread.access$1600(ActivityThread.java:221)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1848)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:158)
at android.app.ActivityThread.main(ActivityThread.java:7225)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
This would allow localization.
<include
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
layout="@layout/toolbar"/>
id/toolbar should be used in <android.support.v7.widget.Toolbar/> instead of include tag
What is the problem with android 10version
Is there any way to return an array Uri or file descriptors of images instead of the images itself ?
I want to change the icon used for adding images after selecting multiple images. I am not able to do it.
Or if not possible can I change that icon to bigger one?
I am using Glide in my project, if I use version 3x then it works fine but if I use version 4x then the app gets crashed as soon as the image selector activity is launched.
This is the line which shows the error:-
Glide.with(this.context).load(((Album)this.arrayList.get(position)).cover).placeholder(drawable.image_placeholder).centerCrop().into(viewHolder.imageView);
java.lang.NoSuchMethodError: No virtual method load(Ljava/lang/String;)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.parag.sopr-2/base.apk:classes58.dex)
at com.darsh.multipleimageselect.adapters.CustomAlbumSelectAdapter.getView(CustomAlbumSelectAdapter.java:44)
at android.widget.AbsListView.obtainView(AbsListView.java:2367)
at android.widget.GridView.onMeasure(GridView.java:1065)
at android.view.View.measure(View.java:19758)
at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:715)
at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:461)
at android.view.View.measure(View.java:19758)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6124)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
at android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:139)
at android.view.View.measure(View.java:19758)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6124)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
at android.view.View.measure(View.java:19758)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6124)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
at android.view.View.measure(View.java:19758)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6124)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1464)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:758)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:640)
at android.view.View.measure(View.java:19758)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6124)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
at com.android.internal.policy.DecorView.onMeasure(DecorView.java:687)
at android.view.View.measure(View.java:19758)
at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2271)
at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1358)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1607)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1246)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6325)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:871)
at android.view.Choreographer.doCallbacks(Choreographer.java:683)
at android.view.Choreographer.doFrame(Choreographer.java:619)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:857)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6111)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
Hi,
I am trying to change the text colour of String "ADD" in the toolbar. could you please help me in this?
Thanks,
Sankaran
Sometimes ,after selecting a photo in the album, the photo in the phone will be deleted. What is the situation?
Hello,
Thank you for the accepted pull request.
We are not sure how to reproduce this error, but sometimes we get the following stack trace from our users devices:
java.lang.NullPointerException
com.darsh.multipleimageselect.activities.ImageSelectActivity$ImageLoaderRunnable.run(ImageSelectActivity.java:327)
java.lang.Thread.run(Thread.java:841)
Could you please look in this one too?
Hi!
I used version compile 'com.github.darsh2:MultipleImageSelect:28c6d56' which fixes the NPE (#39). But this version has resources which overrides my application resources (string/app_name and mipmap/ic_launcher). It happens because resources in your library has more specific qualifiers (values-ru and mipmap-hdpi-v4) than my application (values and mipmap-hdpi). These resources not very important for library, but very important for application. I can override these resources by more specific qualifiers, but it is not very good decision. Many client applications should do it instead of simple adding dependency.
Can you remove these resources from library?
Hello,
Good work
I have some trouble in your library when i OS version 6 or more with integrate other library like Hockey app.
The issues is here when i add Hockey app. your library gives permission error is all are permission Granted from setting.
so this library is dead? Please remove it from github then.
Your app badly needs library upgrades:
+--- com.github.darsh2:MultipleImageSelect:v0.0.4
| +--- com.github.bumptech.glide:glide:3.6.0 -> 4.11.0
| | +--- com.github.bumptech.glide:gifdecoder:4.11.0
| | | --- androidx.annotation:annotation:1.0.0 -> 1.1.0
| | +--- com.github.bumptech.glide:disklrucache:4.11.0
| | +--- com.github.bumptech.glide:annotations:4.11.0
| | +--- androidx.fragment:fragment:1.0.0 -> 1.1.0 ()
| | +--- androidx.vectordrawable:vectordrawable-animated:1.0.0 -> 1.1.0 ()
| | --- androidx.exifinterface:exifinterface:1.0.0
| | --- androidx.annotation:annotation:1.0.0 -> 1.1.0
| --- androidx.appcompat:appcompat:1.0.0 -> 1.1.0 (*)
especially Glide should be using version 4.11 by now.
Thanks.
ArrayList images = data.getStringArrayListExtra(com.darsh.multipleimageselect.helpers.Constants.INTENT_EXTRA_IMAGES);
Gives a class cast exception. It was working earlier.
Hey guys,
Im getting this error ... Ive tried setting android:exported = true in my manifest as well, but it doesn't work. And I've also provided the read/write permissions.
10-05 12:15:21.611 28063-28171/com.sand5.giflab E/AndroidRuntime: java.lang.SecurityException: Permission Denial: reading com.android.providers.media.MediaProvider uri content://media/external/images/media from pid=28063, uid=10151 requires android.permission.READ_EXTERNAL_STORAGE, or grantUriPermission()
Please help me out...
Thanks
There is no back button on the actionBar.
If by mistake i have selected a wrong album i have to go back entirely and open the image picker again.
Is there any way to avoid this.
Hello. We hope you still provide support for MultipleImageSelect.
We've met some issues while using your image picker, which you can reproduce as follows:
As the result, the activity reloads, and then, when you try to choose any of available images and hit the "Add" button, you'll get a crash with the following stack trace:
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.os.Handler.removeCallbacksAndMessages(java.lang.Object)' on a null object reference
android.app.ActivityThread.performDestroyActivity(ActivityThread.java:3656)
android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:3710)
android.app.ActivityThread.access$1400(ActivityThread.java:147)
android.app.ActivityThread$H.handleMessage(ActivityThread.java:1340)
android.os.Handler.dispatchMessage(Handler.java:102)
android.os.Looper.loop(Looper.java:135)
android.app.ActivityThread.main(ActivityThread.java:5260)
java.lang.reflect.Method.invoke(Native Method)
java.lang.reflect.Method.invoke(Method.java:372)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.os.Handler.removeCallbacksAndMessages(java.lang.Object)' on a null object reference
com.darsh.multipleimageselect.activities.ImageSelectActivity.onStop(ImageSelectActivity.java:150)
android.app.Instrumentation.callActivityOnStop(Instrumentation.java:1261)
android.app.Activity.performStop(Activity.java:6127)
android.app.ActivityThread.performDestroyActivity(ActivityThread.java:3651)
android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:3710)
android.app.ActivityThread.access$1400(ActivityThread.java:147)
android.app.ActivityThread$H.handleMessage(ActivityThread.java:1340)
android.os.Handler.dispatchMessage(Handler.java:102)
android.os.Looper.loop(Looper.java:135)
android.app.ActivityThread.main(ActivityThread.java:5260)
java.lang.reflect.Method.invoke(Native Method)
java.lang.reflect.Method.invoke(Method.java:372)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
We have suceeded to reproduce this on following devices:
Dalvik/2.1.0 (Linux; U; Android 6.0; Nexus 5X Build/MDA89E)
Dalvik/2.1.0 (Linux; U; Android 5.0; K016 Build/LRX21V)
User image selection sequence is not remembered. If user picks 4,6 and 2 image from picker.
Returned list contains 2,4 and 6 (chronological order). This will help in cases where single piece of info fragmented into different images. User can pic multiple information to make full piece of info.
I am not sure if it is related with issue #14 and I got this error. (My android version is - 6.0.1 and I am using v.0.0.4 of multiple image select library)
java.lang.NullPointerException: Attempt to invoke virtual method 'char[] java.lang.String.toCharArray()' on a null object reference
at java.io.File.fixSlashes(File.java:183)
at java.io.File.<init>(File.java:130)
at com.darsh.multipleimageselect.activities.AlbumSelectActivity$AlbumLoaderRunnable.run(AlbumSelectActivity.java:353)
at java.lang.Thread.run(Thread.java:818)
If GIF images are present in sdcard, they are not displayed
Hello,
This one is not really related to your code, but it would be extremely nice if you can have a look at this one too.
And another question: is there any way to disable GIF indexing in your module? Our app doesn't support GIFs anyway, so it would be nice to remove them from user's point of view.
java.lang.OutOfMemoryError
com.bumptech.glide.gifdecoder.GifDecoder.setData(GifDecoder.java:379)
com.bumptech.glide.load.resource.gif.GifDrawable.(GifDrawable.java:85)
com.bumptech.glide.load.resource.gif.GifDrawable$GifState.newDrawable(GifDrawable.java:360)
com.bumptech.glide.load.resource.drawable.DrawableResource.get(DrawableResource.java:32)
com.bumptech.glide.load.resource.drawable.DrawableResource.get(DrawableResource.java:16)
com.bumptech.glide.load.engine.EngineResource.get(EngineResource.java:44)
com.bumptech.glide.request.GenericRequest.onResourceReady(GenericRequest.java:487)
com.bumptech.glide.load.engine.Engine.load(Engine.java:155)
com.bumptech.glide.request.GenericRequest.onSizeReady(GenericRequest.java:449)
com.bumptech.glide.request.target.ViewTarget$SizeDeterminer.getSize(ViewTarget.java:211)
com.bumptech.glide.request.target.ViewTarget.getSize(ViewTarget.java:100)
com.bumptech.glide.request.GenericRequest.begin(GenericRequest.java:272)
com.bumptech.glide.manager.RequestTracker.runRequest(RequestTracker.java:37)
com.bumptech.glide.GenericRequestBuilder.into(GenericRequestBuilder.java:661)
com.bumptech.glide.GenericRequestBuilder.into(GenericRequestBuilder.java:697)
com.bumptech.glide.DrawableRequestBuilder.into(DrawableRequestBuilder.java:448)
com.darsh.multipleimageselect.adapters.CustomImageSelectAdapter.getView(CustomImageSelectAdapter.java:51)
android.widget.AbsListView.obtainView(AbsListView.java:2250)
android.widget.GridView.makeAndAddView(GridView.java:1345)
android.widget.GridView.makeRow(GridView.java:345)
android.widget.GridView.fillSpecific(GridView.java:547)
android.widget.GridView.layoutChildren(GridView.java:1244)
android.widget.AbsListView.onLayout(AbsListView.java:2101)
android.view.View.layout(View.java:14832)
android.view.ViewGroup.layout(ViewGroup.java:4640)
android.widget.RelativeLayout.onLayout(RelativeLayout.java:1055)
android.view.View.layout(View.java:14832)
android.view.ViewGroup.layout(ViewGroup.java:4640)
android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
android.widget.FrameLayout.onLayout(FrameLayout.java:388)
android.view.View.layout(View.java:14832)
android.view.ViewGroup.layout(ViewGroup.java:4640)
android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
android.widget.FrameLayout.onLayout(FrameLayout.java:388)
android.view.View.layout(View.java:14832)
android.view.ViewGroup.layout(ViewGroup.java:4640)
android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
android.widget.FrameLayout.onLayout(FrameLayout.java:388)
android.view.View.layout(View.java:14832)
android.view.ViewGroup.layout(ViewGroup.java:4640)
android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
android.widget.FrameLayout.onLayout(FrameLayout.java:388)
android.view.View.layout(View.java:14832)
android.view.ViewGroup.layout(ViewGroup.java:4640)
android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
android.widget.FrameLayout.onLayout(FrameLayout.java:388)
android.view.View.layout(View.java:14832)
android.view.ViewGroup.layout(ViewGroup.java:4640)
android.view.ViewRootImpl.performLayout(ViewRootImpl.java:1996)
android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1753)
android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1004)
android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5739)
android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)
android.view.Choreographer.doCallbacks(Choreographer.java:574)
android.view.Choreographer.doFrame(Choreographer.java:544)
android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747)
android.os.Handler.handleCallback(Handler.java:733)
android.os.Handler.dispatchMessage(Handler.java:95)
android.os.Looper.loop(Looper.java:136)
android.app.ActivityThread.main(ActivityThread.java:5372)
java.lang.reflect.Method.invokeNative(Native Method)
java.lang.reflect.Method.invoke(Method.java:515)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:970)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:786)
dalvik.system.NativeStart.main(Native Method)
How can I give the toolbar a shadow?
how select all image in a dir??
The library is really slow on phones with photos in thousands (not very unusual!). After digging a bit into the Content Resolver code, I found the culprit. It's the ArrayList.contains()
you're doing for each content row, for checking if to add a new album into the ArrayList.
This can be done in a simpler, efficient way, by passing MediaStore.Images.Media.BUCKET_ID for orderBy of Cursor, and then just comparing adjacent IDs instead, to know if it's a new album.
FishBun does it this way and it works great. https://github.com/sangcomz/FishBun/blob/master/FishBun/src/main/java/com/sangcomz/fishbun/ui/album/AlbumActivity.java#L163
Thanks for the nice library!
Hey Darsh,
thanks for great example code.
I want to set minimum count of images, like please select atleast 5 images. something like this.
please help.
thanks in advance
Process: com.globaldream.property, PID: 12742
java.lang.NoSuchMethodError: No virtual method load(Ljava/lang/String;)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.globaldream.property-zdeA40596EJysgc7gxpvCQ==/split_lib_dependencies_apk.apk)
at com.darsh.multipleimageselect.adapters.CustomAlbumSelectAdapter.getView(CustomAlbumSelectAdapter.java:44)
at android.widget.AbsListView.obtainView(AbsListView.java:2399)
at android.widget.GridView.onMeasure(GridView.java:1070)
at android.view.View.measure(View.java:23181)
at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:715)
at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:461)
at android.view.View.measure(View.java:23181)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6749)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
at android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:143)
at android.view.View.measure(View.java:23181)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6749)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
at android.view.View.measure(View.java:23181)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6749)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
at android.view.View.measure(View.java:23181)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6749)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1535)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:825)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:704)
at android.view.View.measure(View.java:23181)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6749)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
at com.android.internal.policy.DecorView.onMeasure(DecorView.java:716)
at android.view.View.measure(View.java:23181)
at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2727)
at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1580)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1864)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1468)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7208)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1004)
at android.view.Choreographer.doCallbacks(Choreographer.java:816)
at android.view.Choreographer.doFrame(Choreographer.java:751)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:990)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6762)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
201
Fatal Exception: java.lang.IndexOutOfBoundsException: Invalid index 18, size is 18
at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255)
at java.util.ArrayList.get(ArrayList.java:308)
at com.darsh.multipleimageselect.adapters.CustomImageSelectAdapter.getView(CustomImageSelectAdapter.java:46)
at android.widget.AbsListView.obtainView(AbsListView.java:2467)
at android.widget.GridView.makeAndAddView(GridView.java:1438)
at android.widget.GridView.makeRow(GridView.java:366)
at android.widget.GridView.fillDown(GridView.java:307)
at android.widget.GridView.fillSpecific(GridView.java:587)
at android.widget.GridView.layoutChildren(GridView.java:1292)
at android.widget.AbsListView.onLayout(AbsListView.java:2230)
at android.view.View.layout(View.java:16017)
at android.view.ViewGroup.layout(ViewGroup.java:5181)
at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1195)
at android.view.View.layout(View.java:16017)
at android.view.ViewGroup.layout(ViewGroup.java:5181)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:639)
at android.widget.FrameLayout.onLayout(FrameLayout.java:574)
at android.view.View.layout(View.java:16017)
at android.view.ViewGroup.layout(ViewGroup.java:5181)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:639)
at android.widget.FrameLayout.onLayout(FrameLayout.java:574)
at android.view.View.layout(View.java:16017)
at android.view.ViewGroup.layout(ViewGroup.java:5181)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:639)
at android.widget.FrameLayout.onLayout(FrameLayout.java:574)
at android.view.View.layout(View.java:16017)
at android.view.ViewGroup.layout(ViewGroup.java:5181)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1959)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1813)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1722)
at android.view.View.layout(View.java:16017)
at android.view.ViewGroup.layout(ViewGroup.java:5181)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:639)
at android.widget.FrameLayout.onLayout(FrameLayout.java:574)
at android.view.View.layout(View.java:16017)
at android.view.ViewGroup.layout(ViewGroup.java:5181)
at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2483)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2180)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1292)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6598)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:800)
at android.view.Choreographer.doCallbacks(Choreographer.java:603)
at android.view.Choreographer.doFrame(Choreographer.java:572)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:786)
at android.os.Handler.handleCallback(Handler.java:815)
at android.os.Handler.dispatchMessage(Handler.java:104)
at android.os.Looper.loop(Looper.java:194)
at android.app.ActivityThread.main(ActivityThread.java:5631)
at java.lang.reflect.Method.invoke(Method.java)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:959)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:754)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.