Matisse
介绍:
一个设计良好的本地图片/视频文件选择库,支持不同的图片加载方式。
运行效果:
使用说明:
Gradle:
repositories {
jcenter()
}
dependencies {
compile 'com.zhihu.android:matisse:0.4.3'
}
权限
该库需要两个权限:
-
android.permission.READ_EXTERNAL_STORAGE
-
android.permission.WRITE_EXTERNAL_STORAGE
如果你的target 是6.0+,你需要现处理好运行时权限请求。
代码片段
从当前Activity或者Fragment中调用MatisseActivity:
Matisse.from(MainActivity.this)
.choose(MimeType.allOf())
.countable(true)
.maxSelectable(9)
.addFilter(new GifSizeFilter(320, 320, 5 * Filter.K * Filter.K))
.gridExpectedSize(getResources().getDimensionPixelSize(R.dimen.grid_expected_size))
.restrictOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED)
.thumbnailScale(0.85f)
.imageEngine(new GlideEngine())
.forResult(REQUEST_CODE_CHOOSE);
主题
MatisseActivity有两个内置的主题:
-
R.style.Matisse_Zhihu
(light mode) -
R.style.Matisse_Dracula
(dark mode)
你也可以定义自己的主题。
接收返回结果
在onActivityResult()
回调中:
List<Uri> mSelected;
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE_CHOOSE && resultCode == RESULT_OK) {
mSelected = Matisse.obtainResult(data);
Log.d("Matisse", "mSelected: " + mSelected);
}
}
已下载
0