Android ------ 知乎开源的图片选择器 Matisse

Android ------ 知乎开源的图片选择器 Matisse,第1张

图片选择其实在Android 项目中还是很常用的,拍照或者从相册中选择图片,视频等

像微信那样的手机相册选择器,我以前一直都在使用的一款,特来分享一哈

知乎图片选择框架Matisse 

先来看看效果图:(可以自己改变样式和是否有相机)

 

预览效果图和微信一样左右滑动即可

导入依赖:

implementation 'com.zhihu.android:matisse:0.5.3-beta3'

点击按钮第一种场景调用:

/**
         * MimeType.ofAll() -->全部类型
         * MimeType.ofImage() -->图片
         * MimeType.ofVideo() -->视频
         * maxSelectable  选择的最大数量
         *
         */
        Matisse.from(PhotoActivity.this)
                .choose(MimeType.ofAll())
                .countable(true)
                .maxSelectable(9)
                .addFilter(new GifSizeFilter(320, 320, 5 * Filter.K * Filter.K))                         
                .restrictOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED)
                .thumbnailScale(0.85f)
                .imageEngine(new GlideEngine())
                .showPreview(false)

                //这两行要连用 是否在选择图片中展示照相 和适配安卓7.0 FileProvider
                .capture(true)
                .captureStrategy(new CaptureStrategy(true,"PhotoPicker"))

                //蓝色主题
                // .theme(R.style.Matisse_Zhihu)
                //黑色主题
                .theme(R.style.Matisse_Dracula)
                //Glide加载方式
                .imageEngine(new GlideEngine())
                //Picasso加载方式
                // .imageEngine(new PicassoEngine())
                //请求码
                .forResult(REQUEST_CODE_CHOOSE);

点击按钮第二种场景调用:

Matisse.from(PhotoActivity.this)
       .choose(MimeType.ofImage())
       .countable(true)
       .maxSelectable(9)
       .addFilter(new GifSizeFilter(320, 320, 5 * Filter.K * Filter.K))
       .restrictOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED)
       .thumbnailScale(0.85f)
       .imageEngine(new GlideEngine())
       .showPreview(false)
       .theme(R.style.Matisse_Zhihu)
        //Glide加载方式
       .imageEngine(new GlideEngine())
       .forResult(REQUEST_CODE_CHOOSE);

数据接收:

 @Override
 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
      super.onActivityResult(requestCode, resultCode, data);
      if (requestCode == REQUEST_CODE_CHOOSE && resultCode == RESULT_OK) {
            //图片路径 同样视频地址也是这个
            List pathList = Matisse.obtainPathResult(data);
            //Uri 格式的
            List pathList1 = Matisse.obtainResult(data);

            for (int i = 0; i < pathList.size(); i++) {
                Log.i("图片"+(i+1)+"地址",pathList.get(i));
            }

        }
  }


选择图片确定,打印的数据:

特点:

Matisse 是知乎开源的一个漂亮的 Android 本地图片、视频选择器。其主要功能有:

选择包括 JPEG、PNG、GIF 格式的图片和 MPEG、MP4 格式的视频

支持自定义主题,包括两个内置的主题

不同的图片加载器

定义自定义过滤规则

在 Activities 和 Fragments 中使用良好

这是非常好用的一个库,希望能帮助到各位

官方文档地址:https://github.com/zhihu/Matisse/

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/992096.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存