我的引言

Matisse,知乎开源,简洁,易用,不错的图片选择库。

效果预览

Matisse_java

项目简介

1、直接在 Activity 和 Fragment 中调用即可;2、支持的图片格式有 JPEG、PNG、GIF,并且支持 MPEG、MP4 格式的视频;3、内置两种不同的主题,并且可以自定义主题;4、支持选择不同的图片加载器,如 Picasso、Glide;5、支持不同的筛选规则;6、支持横竖屏切换;

使用说明

app/build.gradle

dependencies {
compile 'com.zhihu.android:matisse:0.5.0-alpha4'
}

代码调用

Matisse.from(SampleActivity.this)
//图片/视频格式
.choose(MimeType.ofAll(), false)
//设置主题,默认知乎主题
.theme(R.style.Matisse_Dracula)
//设置选取数自动增加
.countable(true)
//是否带拍照
.capture(true)
//设置保存图片权限策略
.captureStrategy(
new CaptureStrategy(true, "com.zhihu.matisse.sample.fileprovider"))
//图片选取最大数
.maxSelectable(9)
//选择item增加过滤器
.addFilter(new GifSizeFilter(320, 320, 5 * Filter.K * Filter.K))
//设置媒体网格的期望大小,以适应不同屏幕大小
.gridExpectedSize(
getResources().getDimensionPixelSize(R.dimen.grid_expected_size))
//设置Activity方向
.restrictOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT)
//设置图片缩略图
.thumbnailScale(0.85f)
//设置图片引擎,默认Glide
.imageEngine(new GlideEngine())
//开始选取照片、等待结果
.forResult(REQUEST_CODE_CHOOSE);

onActivityResult

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE_CHOOSE && resultCode == RESULT_OK) {
List<Uri> mUris =Matisse.obtainResult(data);
List<String> mPaths=Matisse.obtainPathResult(data);
}
}

源码地址

https://github.com/zhihu/MatisseMatisse源码也是很值得去看看,不是很难,但很多地方如 Builder 模式、图片引擎等值得学习。