PictureSelector 2.0

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

PictureSelector.svg

PRs-Welcome-brightgreen.svg

luck_mw.svg?style=social

PictureSelector.svg

PictureSelector.svg

目录

最新版本

step 1

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

step 2

allprojects {

repositories {

jcenter()

maven { url 'https://jitpack.io' }

}

}

启动相册

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

1、onActivityResult

PictureSelector.create(this)

.openGallery(PictureMimeType.ofImage())

.loadImageEngine(GlideEngine.createGlideEngine()) // 请参考Demo GlideEngine.java

.forResult(PictureConfig.CHOOSE_REQUEST);

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

super.onActivityResult(requestCode, resultCode, data);

if (resultCode == RESULT_OK) {

switch (requestCode) {

case PictureConfig.CHOOSE_REQUEST:

// 结果回调

List selectList = PictureSelector.obtainMultipleResult(data);

break;

default:

break;

}

}

2、Callback

PictureSelector.create(this)

.openGallery(PictureMimeType.ofAll())

.loadImageEngine(GlideEngine.createGlideEngine())

.forResult(new OnResultCallbackListener() {

@Override

public void onResult(List result) {

// 结果回调

}

@Override

public void onCancel() {

// 取消

}

});

单独拍照

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

onActivityResult

PictureSelector.create(this)

.openCamera(PictureMimeType.ofImage())

.loadImageEngine(GlideEngine.createGlideEngine()) // 请参考Demo GlideEngine.java

.forResult(PictureConfig.REQUEST_CAMERA);

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

super.onActivityResult(requestCode, resultCode, data);

if (resultCode == RESULT_OK) {

switch (requestCode) {

case PictureConfig.REQUEST_CAMERA:

// 结果回调

List selectList = PictureSelector.obtainMultipleResult(data);

break;

default:

break;

}

}

Callback

PictureSelector.create(this)

.openCamera(PictureMimeType.ofImage())

.loadImageEngine(GlideEngine.createGlideEngine())

.forResult(new OnResultCallbackListener() {

@Override

public void onResult(List result) {

// 结果回调

}

@Override

public void onCancel() {

// 取消

}

});

自定义相机

如果需要使用自定义相机需要设置

.isUseCustomCamera(true);

Application下实现如下接口

public class App extends Application implements CameraXConfig.Provider {

private static final String TAG = App.class.getSimpleName();

@Override

public void onCreate() {

super.onCreate();

}

@NonNull

@Override

public CameraXConfig getCameraXConfig() {

returnCamera2Config.defaultConfig();

}

}

缓存清除

//包括裁剪和压缩后的缓存,要在上传成功后调用,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.** { *; }

#Ucrop

-dontwarn com.yalantis.ucrop**

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

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

#Okio

-dontwarn org.codehaus.mojo.animal_sniffer.*

License

Copyright 2017 Luck

Licensed under the Apache License, Version 2.0 (the "License");

you may not use this file except incompliance 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 inwriting, 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 forthe specific language governing permissions and

limitations under the License.

联系方式

Android开发交流 群一 619458861 (已满)

Android开发交流 群二 679824206 (已满)

Android开发交流 群三 854136996 (已满)

QQ 893855882

兼容性测试

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

test.png

演示效果

单一模式

混选模式

5f2dcd263f9c2011104c3984a3cb1fa9.png

a5e03bdc75fd160f77f0de23d1b0e1a7.png

默认风格

预览

多图裁剪

0f3b9ddab55b4cc57655809e192889de.png

40a031b0ff650ef5f725f1c56c339cbb.png

c9318d9924a5f0a3273b12b991e32e23.png

数字风格

预览

多图裁剪

ef393e79ddcf4a6eb58de7d3bdf8e876.png

40076060f2a90d89c381b536a36d4991.png

d04a2288483f00c97eaa8757f9e1822d.png

白色风格

预览

单图裁剪

f869db1a7b2dddf69517dc240fb08341.png

2f95a19645c1f924cc6b4a02fc55c952.png

6cd92ef15dd169a1917e5a2da747d1e6.png

全新风格

预览

多图裁剪

b643b4fb9e75fa15192a9fd0953c42ae.png

9c74b706333d940a4a101365e7ed89cc.png

d6ae19c9ec4d911e19a2af984c9ad856.png

相册目录

单选模式

头像裁剪

be793c34e1367c21f75b97b097e7cd2f.png

2ee86c3aa4cf7eaa63490b4d4f43c8eb.png

951dba647b0d96bcca92fdd31da8ca1a.png

白色风格

视频

音频

64190c85eca19fe353e416666defe043.png

581ac96c0537b07dc607ca11d4ac36b5.png

c45d9d8d7884a2ade0129f58d31581e9.png

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐