1.说明
选择图片或视频并提供预览功能的第三方开源库
2.地址
implementation group: 'com.zhihu.android', name: 'matisse', version: '0.5.2-beta4'
3.异常
Matisse依赖support:appcompat-v7:27.1.1,需要注意主体项目的support版本是否一致
4.权限
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.READ_EXTERNAL_STORAGE
注:Android 6.0及其以上需要动态申请权限
5.使用
- 在Activity或者Fragment中调用
RxPermissions(this).request(
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.READ_EXTERNAL_STORAGE
).subscribe {
if (it) {
//用户同意授权
Matisse.from(this@IndexActivity)
///选择仅图片、仅视频或者两者兼顾
.choose(MimeType.ofImage())
//是否统计选择的顺序
.countable(true)
//最大选择数量
.maxSelectable(9)
//屏幕方向
.restrictOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT)
//缩略比例
.thumbnailScale(0.80f)
//图片加载工程(内置glide和picasso,glide4需自己实现ImageEngine)
.imageEngine(Glide4Engine())
//启动图片选择页面RequestCode
.forResult(REQUEST_CODE_CHOOSE)
} else {
//用户拒绝授权
}
}
- 在Activity或者Fragment的OnXXXResult方法中获取选择结果
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == REQUEST_CODE_CHOOSE
&& resultCode == Activity.RESULT_OK) {
Matisse.obtainResult(data).forEach { uri ->
// do something
Log.e("APP", uri.path)
}
}
}
网友评论