1.导入相关依赖
//app build.gradle文件下
implementation('com.zhihu.android:matisse:0.5.2-beta2') {
exclude group: 'com.android.support'
}
//Glide加载图片
implementation 'com.github.bumptech.glide:glide:4.9.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.9.0'
2.想要进去系统相册,拿到图片,需要读写权限
这是一个权限URL站位标签,将持续更新
3.调用相册
Matisse.from(this)
.choose(MimeType.ofVideo())
.countable(true)
.maxSelectable(1)
//R.dimen.grid_expected_size
.thumbnailScale(0.85f)
.imageEngine(new GlideImageEngine())
.forResult(201);
(1)关于MimeType参数 当为 ofVideo()时,只能选择视频,为ofImage时只能选择图片
(2)maxSelectable 选择图片/视频的最大数量
(3)thumbnailScale 动画缩放比例
(4)imageEngine 图片加载器
(5)forResult 请求码
(6)图片加载器代码
public class GlideImageEngine implements ImageEngine {
@Override
public void loadThumbnail(Context context, int resize, Drawable placeholder, ImageView imageView, Uri uri) {
RequestOptions requestOptions = new RequestOptions()
.placeholder(placeholder)
.override(resize,resize)
.centerCrop();
Glide.with(context)
.asBitmap()
.load(uri)
.apply(requestOptions)
.into(imageView);
}
@Override
public void loadGifThumbnail(Context context, int resize, Drawable placeholder, ImageView imageView, Uri uri) {
RequestOptions requestOptions = new RequestOptions()
.placeholder(placeholder)
.override(resize,resize)
.centerCrop();
Glide.with(context)
.asBitmap()
.load(uri)
.apply(requestOptions)
.into(imageView);
}
@Override
public void loadImage(Context context, int resizeX, int resizeY, ImageView imageView, Uri uri) {
RequestOptions requestOptions = new RequestOptions()
.priority(Priority.HIGH)
.override(resizeX,resizeY);
Glide.with(context)
.load(uri)
.apply(requestOptions)
.into(imageView);
}
@Override
public void loadGifImage(Context context, int resiz