前言
在实际开发中,图片选择器一直都是必不可少的一个部分,不管是QQ头像的设置,还是发送一条装逼的微信朋友圈,都要用到图片选择器来给用户选择他们想要上传的图片,最近知乎开源了一款图片选择库马蒂斯简直美哭了,而且完全遵循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(真正的)代码> 李> <李>只选择图片或者视频李>
数量
<人力资源/><强>默认情况强>
在缩略图的右上角有一个复选标记,让你不仅可以选择一个图像安卓一起来看看知乎开源的图片选择库