Code Monkey home page Code Monkey logo

imageselector's People

Contributors

ioneday avatar joesteven avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

imageselector's Issues

Intent 设置Uri 没有适配android N

Intent 设置Uri 没有适配android N
android.os.FileUriExposedException: file:///storage/emulated/0/LiteNote/pictures/1476891731242.jpg exposed beyond app through Intent.getData()

bug in ImagePreviewActivity

I pick some of pics in ImagePreviewActivity,after that back to ImageSelectorActivity,there is nothing happen !!!
It should show the pics which i choosed in ImagePreviewActivity~

Bug Report: Folders list contains 2 folders with the same name

When 2 folders with the same exists in the phone, the 2 folders would be viewed as the same one.
because it compares using folder name instead of folder full path.

Modify this method
LocalMediaLoader.java
private LocalMediaFolder getImageFolder(String path, List imageFolders)
change
if (folder.getName().equals(folderFile.getName()))
into
if (folder.getPath().equals(folderFile.getAbsolutePath()))

load by scroll

hi...
for large image on device it's very slow...i think for loading all image at the time...
is there any way to loading image by scroll...thanks

裁剪上传的时候提示dialog泄露报错

通过这样调用界面
ImageSelectorActivity.start(PersonInfoActivity.this, 1, ImageSelectorActivity.MODE_SINGLE, true, true, true);
onActivityResult 回调的时候会报下面的异常,一开始以为是Fragment的问题,换到Activity中也一样

07-20 00:22:03.922 12846-12846/com.ixwork E/WindowManager: android.view.WindowLeaked: Activity com.yongchun.library.view.ImageCropActivity has leaked window com.android.internal.policy.PhoneWindow$DecorView{a5cff5a V.E...... R.....ID 0,0-1336,464} that was originally added here
at android.view.ViewRootImpl.(ViewRootImpl.java:565)
at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:326)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
at android.app.Dialog.show(Dialog.java:350)
at android.app.ProgressDialog.show(ProgressDialog.java:151)
at android.app.ProgressDialog.show(ProgressDialog.java:139)
at com.yongchun.library.view.ImageCropActivity$2.onClick(ImageCropActivity.java:108)
at android.view.View.performClick(View.java:5697)
at android.widget.TextView.performClick(TextView.java:10816)
at android.view.View$PerformClick.run(View.java:22526)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:158)
at android.app.ActivityThread.main(ActivityThread.java:7232)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)

重名文件夹图片无法加载, 图片排序建议改为降序

当SD有重名的目录时, 只能加载其中一个目录文件。原因是因为多加了一个判断, 注释了就可以了. 之前已经通过hashset判断重复文件,这里应该可以不用了

private LocalMediaFolder getImageFolder(String path, List imageFolders) {
File imageFile = new File(path);
File folderFile = imageFile.getParentFile();

// for (LocalMediaFolder folder : imageFolders) {
// if (folder.getName().equals(folderFile.getName())) {
// return folder;
// }
// }
LocalMediaFolder newFolder = new LocalMediaFolder();
newFolder.setName(folderFile.getName());
newFolder.setPath(folderFile.getAbsolutePath());
newFolder.setFirstImagePath(path);
return newFolder;
}

目前图片排序为升序, 建议改为降序

怎么直接启动拍照

我想直接启动拍照功能,然后,预览,在裁剪。注意:不需要显示相册列表

选中图片CheckBox未勾上

在相册选择图片,单选模式下选中一张图片后,图片上的CheckBox没有勾上,这个怎么回事?

当加载的图片很多的时候,在选择图片界面直接点击图片预览时,程序奔溃

当加载的图片很多(如所有图片,超过6000多张)的时候,在选择图片界面直接点击图片预览时,程序奔溃,报错信息如下:
FATAL EXCEPTION: main
Process: com.lanqian.skxcpt, PID: 13174
java.lang.RuntimeException: Failure from system
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1516)
at android.app.Activity.startActivityForResult(Activity.java:3993)
at android.support.v4.app.BaseFragmentActivityJB.startActivityForResult(BaseFragmentActivityJB.java:48)
at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:75)
at android.app.Activity.startActivityForResult(Activity.java:3954)
at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:856)
at com.yongchun.library.view.ImagePreviewActivity.startPreview(ImagePreviewActivity.java:63)
at com.yongchun.library.view.ImageSelectorActivity.startPreview(ImageSelectorActivity.java:269)
at com.yongchun.library.view.ImageSelectorActivity$4.onPictureClick(ImageSelectorActivity.java:189)
at com.yongchun.library.adapter.ImageListAdapter$3.onClick(ImageListAdapter.java:124)
at android.view.View.performClick(View.java:5207)
at android.view.View$PerformClick.run(View.java:21177)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5458)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:738)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:628)
Caused by: android.os.TransactionTooLargeException: data parcel size 1904920 bytes
at android.os.BinderProxy.transactNative(Native Method)
at android.os.BinderProxy.transact(Binder.java:503)
at android.app.ActivityManagerProxy.startActivity(ActivityManagerNative.java:2680)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1509)
at android.app.Activity.startActivityForResult(Activity.java:3993) 
at android.support.v4.app.BaseFragmentActivityJB.startActivityForResult(BaseFragmentActivityJB.java:48) 
at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:75) 
at android.app.Activity.startActivityForResult(Activity.java:3954) 
at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:856) 
at com.yongchun.library.view.ImagePreviewActivity.startPreview(ImagePreviewActivity.java:63) 
at com.yongchun.library.view.ImageSelectorActivity.startPreview(ImageSelectorActivity.java:269) 
at com.yongchun.library.view.ImageSelectorActivity$4.onPictureClick(ImageSelectorActivity.java:189) 
at com.yongchun.library.adapter.ImageListAdapter$3.onClick(ImageListAdapter.java:124) 
at android.view.View.performClick(View.java:5207) 
at android.view.View$PerformClick.run(View.java:21177) 
at android.os.Handler.handleCallback(Handler.java:739) 
at android.os.Handler.dispatchMessage(Handler.java:95) 
at android.os.Looper.loop(Looper.java:148) 
at android.app.ActivityThread.main(ActivityThread.java:5458) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:738) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:628)

没有觉得进入 “所有图片”很卡吗

在进入 onLoadFinished 结束后,如何图片特别多话,很卡,这个数据while 很显然没有优化好,我手机2000多图片,结束数据图片while 大约要1234毫m, 大家有没有优化的方案

http://hanhailong.com/2016/06/27/%E4%BC%98%E5%8C%96%E6%9F%A5%E8%AF%A2%E5%8A%A0%E8%BD%BD%E5%A4%A7%E6%95%B0%E9%87%8F%E7%9A%84%E6%9C%AC%E5%9C%B0%E7%9B%B8%E5%86%8C%E5%9B%BE%E7%89%87/
这个文章中,也说了,三个方面优化,但是没有看懂

android.database.StaleDataException: Attempted to access a cursor after it has been closed.

通过友盟崩溃日志查看会出现如下异常;
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.ikongjian.im/com.yongchun.library.view.ImageSelectorActivity}: android.database.StaleDataException: Attempted to access a cursor after it has been closed.
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2401)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2463)
at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:4047)
at android.app.ActivityThread.access$1000(ActivityThread.java:175)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1372)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5386)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:927)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:722)
Caused by: android.database.StaleDataException: Attempted to access a cursor after it has been closed.
at android.database.BulkCursorToCursorAdaptor.throwIfCursorIsClosed(BulkCursorToCursorAdaptor.java:64)
at android.database.BulkCursorToCursorAdaptor.getCount(BulkCursorToCursorAdaptor.java:70)
at android.database.AbstractCursor.moveToPosition(AbstractCursor.java:197)
at android.database.AbstractCursor.moveToNext(AbstractCursor.java:245)
at android.database.CursorWrapper.moveToNext(CursorWrapper.java:166)
at com.yongchun.library.utils.LocalMediaLoader$1.onLoadFinished(LocalMediaLoader.java:78)
at com.yongchun.library.utils.LocalMediaLoader$1.onLoadFinished(LocalMediaLoader.java:54)
at android.support.v4.app.LoaderManagerImpl$LoaderInfo.callOnLoadFinished(LoaderManager.java:476)
at android.support.v4.app.LoaderManagerImpl$LoaderInfo.finishRetain(LoaderManager.java:306)
at android.support.v4.app.LoaderManagerImpl.finishRetain(LoaderManager.java:806)
at android.support.v4.app.FragmentHostCallback.reportLoaderStart(FragmentHostCallback.java:280)
at android.support.v4.app.FragmentController.reportLoaderStart(FragmentController.java:378)
at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:609)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1245)
at android.app.Activity.performStart(Activity.java:6099)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2364)
... 11 more
android.database.StaleDataException: Attempted to access a cursor after it has been closed.
at android.database.BulkCursorToCursorAdaptor.throwIfCursorIsClosed(BulkCursorToCursorAdaptor.java:64)
at android.database.BulkCursorToCursorAdaptor.getCount(BulkCursorToCursorAdaptor.java:70)
at android.database.AbstractCursor.moveToPosition(AbstractCursor.java:197)
at android.database.AbstractCursor.moveToNext(AbstractCursor.java:245)
at android.database.CursorWrapper.moveToNext(CursorWrapper.java:166)
at com.yongchun.library.utils.LocalMediaLoader$1.onLoadFinished(LocalMediaLoader.java:78)
at com.yongchun.library.utils.LocalMediaLoader$1.onLoadFinished(LocalMediaLoader.java:54)
at android.support.v4.app.LoaderManagerImpl$LoaderInfo.callOnLoadFinished(LoaderManager.java:476)
at android.support.v4.app.LoaderManagerImpl$LoaderInfo.finishRetain(LoaderManager.java:306)
at android.support.v4.app.LoaderManagerImpl.finishRetain(LoaderManager.java:806)
at android.support.v4.app.FragmentHostCallback.reportLoaderStart(FragmentHostCallback.java:280)
at android.support.v4.app.FragmentController.reportLoaderStart(FragmentController.java:378)
at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:609)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1245)
at android.app.Activity.performStart(Activity.java:6099)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2364)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2463)
at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:4047)
at android.app.ActivityThread.access$1000(ActivityThread.java:175)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1372)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5386)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:927)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:722)

图片预览不完美

首先因为预览页底部的选择checkbox会被虚拟按键条挡住 我去掉了ImagePreviewActivity中的FLAG_LAYOUT_NO_LIMITS
接着发现toolbar上面有片黑色区域 于是去掉了activity_image_preview中那个占位的view
然后发现有些图片预览时左右会留空 于是改了好长时间 但还没改好
我觉得应该改window的flag

在预览界面ImagePreviewFragment中为什么加载图片一定要转成Bitmap呢?

  final View contentView = inflater.inflate(R.layout.fragment_preview, container, false);
        final ImageView imageView = contentView.findViewById(R.id.image);
        final PhotoViewAttacher mAttacher = new PhotoViewAttacher(imageView);
        // TODO: 2018/2/8 0008 不明白为什么要这样写
        Glide.with(this)
                .asBitmap()
                .load(new File(strUrl))
                .into(new SimpleTarget<Bitmap>(480, 800) {
                    @Override
                    public void onResourceReady(@NonNull Bitmap resource, @Nullable Transition<? super Bitmap> transition) {
                        imageView.setImageBitmap(resource);
                        mAttacher.update();
                    }
                });
        return contentView;

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.