权限
依赖
maven { url 'https://jitpack.io' }
implementation 'com.github.LuckSiege.PictureSelector:picture_library:v2.6.0'
避免报错
然后因为PictureSelector需要项目minSdkVersion要大于或者等于19
然后最好添加
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
如果出现限制dex大小添加
multiDexEnabled true
apply plugin: 'com.android.application'
android {
compileSdkVersion 30
buildToolsVersion "30.0.1"
defaultConfig {
applicationId "com.wd.circlesharingdemo"
minSdkVersion 19
targetSdkVersion 30
versionCode 1
versionName "1.0"
multiDexEnabled true
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
使用
PictureSelector.create(activity)
.openGallery(PictureMimeType.ofImage())//全部.PictureMimeType.ofAll()、图片.ofImage()、视频.ofVideo()、音频.ofAudio()
//.theme()//主题样式(不设置为默认样式) 也可参考demo values/styles下 例如:R.style.picture.white.style
.maxSelectNum(maxSize)// 最大图片选择数量 int
.minSelectNum(1)// 最小选择数量 int
.imageEngine(GlideEngine.createGlideEngine())
.imageSpanCount(3)// 每行显示个数 int
.isCamera(true)// 是否显示拍照按钮 true or false
.isZoomAnim(true)// 图片列表点击 缩放效果 默认true
.isEnableCrop(true)// 是否裁剪 true or false
.isCompress(true)// 是否压缩 true or false
.minimumCompressSize(100)// 小于100kb的图片不压缩
.forResult(PictureConfig.CHOOSE_REQUEST);//结果回调onActivityResult code
然后在onActivityResult里面获取图片集合
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
// 结果回调
List selectList = PictureSelector.obtainMultipleResult(data);
//在这里补充一下因为现在的数据格式是LocalMedia需要进行转化不能强转这样会找不到路径的
showSelectPic(selectList);
}
}
经过测试拍照上传时会出现上传不上去的情况我还进行一次压缩,拍照成功上传
/**
* 关于图片的工具类压缩等
*/
public class BitmapUtil {
private static String PHOTO_FILE_NAME = "PMSManagerPhoto";
/**
* 获取图片的旋转角度
*
* @param f