知乎Matisse的使用

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)
            }
        }
    }

你可能感兴趣的:(知乎Matisse的使用)