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

Posted 切切歆语

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android ------ 知乎开源的图片选择器 Matisse相关的知识,希望对你有一定的参考价值。

图片选择其实在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<String> pathList = Matisse.obtainPathResult(data);
            //Uri 格式的
            List<Uri> pathList1 = Matisse.obtainResult(data);

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

        
  


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

特点:

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

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

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

  3. 不同的图片加载器

  4. 定义自定义过滤规则

  5. 在 Activities 和 Fragments 中使用良好

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

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

以上是关于Android ------ 知乎开源的图片选择器 Matisse的主要内容,如果未能解决你的问题,请参考以下文章

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

Android 一起来看看知乎开源的图片选择库

Jetpack Compose 实现一个图片选择框架

Charles - Android 多媒体选择器

Android高仿微信图片选择上传工具

Android高仿微信图片选择上传工具