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

  

前言

  
  

在实际开发中,图片选择器一直都是必不可少的一个部分,不管是QQ头像的设置,还是发送一条装逼的微信朋友圈,都要用到图片选择器来给用户选择他们想要上传的图片,最近知乎开源了一款图片选择库马蒂斯简直美哭了,而且完全遵循Android交互设计规范,实在是很良的心。

     

在开始正文之前,先欣赏一下这个图片选择器的效果

  

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

  

是不是感觉相当的简洁好看,反正我是这么认为的。

  

一、基本使用

  <人力资源/>   
1,导入相应的依赖库h5> Gradle:

  
 <代码>存储库{
  jcenter ()
  }
  
  依赖关系{
  编译的com.zhihu.android:马蒂斯:0.4.3
  } 
  

有一点要注意一下,这个图片选择库是使用滑翔或毕加索作为图片加载引擎

  

如果你使用滑移作为你的图片加载引擎,请添加滑翔的自述文件上所说的规则,以及添加额外的规则:

  
 <代码> -dontwarn com.squareup.picasso。* *  
  

如果你使用毕加索作为你的图片加载引擎,请添加毕加索的自述文件上所说的规则,以及添加额外的规则:

  
 <代码> -dontwarn com.bumptech.glide。* *  
  
2,启动马蒂斯h5> 在正式写代码之前,有两个相关的权限需要先申请:

  
 <代码> android.permission.READ_EXTERNAL_STORAGE
  android.permission.WRITE_EXTERNAL_STORAGE  
  

所以,如果你的应用程序是跑在Android 6.0 +的话,你需要在下个步骤之前处理一下运行时权限。

  

我们可以在平常的活动或片段中启动MatisseActivity

  
 <代码> Matisse.from (MainActivity.this)
  .choose (MimeType.ofAll()、假)//选择mime的类型
  .countable(真正的)
  .maxSelectable(9)//图片选择的最多数量
  .gridExpectedSize (getresource () .getDimensionPixelSize (R.dimen.grid_expected_size))
  .restrictOrientation (ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED)
  .thumbnailScale (0.85 f)//缩略图的比例
  .imageEngine(新GlideEngine())//使用的图片加载引擎
  .forResult (REQUEST_CODE_CHOOSE);//设置作为标记的请求码
   
  
3,接收选择的结果h5> 在启动图片选择器的活动或片段中的onActivityResult()进行结果的回调处理

  
 <代码> ListmSelected;
  
  @Override
  保护无效onActivityResult (int, int requestCode resultCode,意图数据){
  超级。onActivityResult (requestCode、resultCode、数据);
  如果(requestCode==REQUEST_CODE_CHOOSE,,resultCode==RESULT_OK) {
  mSelected=Matisse.obtainResult(数据);
  日志。d(“马蒂斯”、“mSelected:“+ mSelected);
  }
  } 
  

二,常用的API/h3>   <人力资源/>   

Mime类型

  

马蒂斯支持以下的mime类型

           Mime类型   文件扩展名   媒体类型               图像/jpeg   jpg, jpeg   图像/png图像   png   图像         gif图像/gif   图像         imagex-ms-bmp   骨形态发生蛋白   图像         视频/mpeg   mpeg,英里/加仑   视频         视频/mp4   mp4、m4v   视频         视频/quicktime   mov   视频         视频/3 gpp   3 gp, 3 gpp   视频         视频/3 gpp2   3 g2, 3 gpp2   视频         视频/x-matroska   mkv   视频         视频/webm   webm   视频         视频/mp2ts   ts   视频         视频/avi   avi   视频            

默认情况下,所有的图像和视频都将显示在马蒂斯中,而且你并不能通过以下方法来限制可选择的mime类型:

  
      <李> MimeType.ofAll()   <李> MimeType。(MimeType类型,MimeType……李rest)   <李> MimeType.ofImage()   <李> MimeType.ofVideo()   
  

不过你可以让马蒂斯只显示一种媒体类型,如果

  
      <李>启动的时候,调用<代码> showSingleMediaType(真正的)   <李>只选择图片或者视频李   
  

数量

  <人力资源/>   

<强>默认情况
在缩略图的右上角有一个复选标记,让你不仅可以选择一个图像

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