我的引言
Matisse,知乎开源,简洁,易用,不错的图片选择库。
效果预览
项目简介
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 模式、图片引擎等值得学习。