PictureSelector

Introduction: 最近项目中用到多图选择上传的需求,随后百度了一下用了别人写的 demo,发现在很多机型上各种不适,闪退等问题,严复影响使用,后面我自己写了一个,公司 20 几款手机全部通过,在腾讯云测中也使用了 4,50 款手机测试,没有发现问题,特分享出来。功能特点: 1.适配 android7.0 系统2.解决部分机型裁剪闪退问题4.解决图片过大 oom 闪退问题5.动态获取系统权限,避免闪退6.支持相片 or 视频的单选和多选7.支持裁剪比例设置,如常用的 1:1、3:4、3:2、16:9 默认为图片大小8.支持视频预览9.支持 gif 图片10.支持一些常用场景设置:如:是否裁剪、是否预览图片、是否裁剪、是否显示相机等用得着的人点个赞吧~ 项目会一直维护,发现问题欢迎提出~
More: Author   ReportBugs   DemoAPK   
Tags:
android多图选择 视频-图片选择,适配-

一款针对 Android 平台下的图片选择器,支持从相册获取图片、视频、音频&拍照,支持裁剪(单图 or 多图裁剪)、压缩、主题自定义配置等功能,支持动态获取权限&适配 Android 5.0+系统的开源图片选择框架。


项目一直维护(有 bug 修复完一般会在周末更新),如果有 bug 请描述清楚并可以提 Issues,个人 QQ 893855882 希望用得着的朋友点个 star。
Android 开发交流 群一 619458861 (已满)
Android 开发交流 群二 679824206 (已满)
Android 开发交流 群三 854136996

我的博客地址

体验 Demo

PRs Welcome CSDN I Star

目录

-用前需知
-如何提 Issues?
-功能特点
-最新版本 v2.4.6
-更新日志
-主题配置-Xml 方式
-主题配置-Code 方式-Code%E6%96%B9%E5%BC%8F)
-演示效果
-集成方式
-启动相册
-单独拍照
-结果回调
-常见错误
-缓存清除
-混淆配置
-LICENSE
-兼容性测试
-打赏

最新版本

implementation 'com.github.LuckSiege.PictureSelector:picture_library:v2.4.6'

启动相册

快捷调用,更多功能 请查看

 PictureSelector.create(this)
   .openGallery(PictureMimeType.ofImage())
   .loadImageEngine(GlideEngine.createGlideEngine()) // 请参考 Demo GlideEngine.java
   .forResult(PictureConfig.CHOOSE_REQUEST);

单独拍照

快捷调用,单独启动拍照或视频 根据 PictureMimeType 自动识别 更多功能 请查看

 PictureSelector.create(this)
   .openCamera(PictureMimeType.ofImage())
   .loadImageEngine(GlideEngine.createGlideEngine()) // 请参考 Demo GlideEngine.java
   .forResult(PictureConfig.REQUEST_CAMERA);

缓存清除

 //包括裁剪和压缩后的缓存,要在上传成功后调用,type 指的是图片 or 视频缓存取决于你设置的 ofImage 或 ofVideo 注意:需要系统 sd 卡权限  
 PictureFileUtils.deleteCacheDirFile(this,type);
 // 清除所有缓存 例如:压缩、裁剪、视频、音频所生成的临时文件
 PictureFileUtils.deleteAllCacheDirFile(this);

预览图片

// 预览图片 可自定长按保存路径
*注意 .themeStyle(R.style.theme);里面的参数不可删,否则闪退...

PictureSelector.create(this)
 .themeStyle(R.style.picture_default_style)
 .isNotPreviewDownload(true)
 .loadImageEngine(GlideEngine.createGlideEngine()) // 请参考 Demo GlideEngine.java
 .openExternalPreview(position, selectList);

预览视频

PictureSelector.create(this).externalPictureVideo(video_path);

项目使用第三方库:

  • PhotoView
  • luban
  • ucrop

混淆配置

#PictureSelector 2.0
-keep class com.luck.picture.lib.** { *; }

-dontwarn com.yalantis.ucrop**
-keep class com.yalantis.ucrop** { *; }
-keep interface com.yalantis.ucrop** { *; }

LICENSE

   Copyright 2017 Luck

   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.

打赏

~如果您觉得好,对你有帮助,可以给我一点打赏当做鼓励,蚊子再小也是肉呀(^__^) 嘻嘻……

image

兼容性测试

**腾讯优测-深度测试-通过率达到 100%**

image

演示效果

单一模式 混选模式
默认风格 预览 多图裁剪
数字风格 预览 多图裁剪
白色风格 预览 单图裁剪
全新风格 预览 多图裁剪
相册目录 单选模式 头像裁剪
白色风格 视频 音频
Apps
About Me
Google+: Trinea trinea
GitHub: Trinea