图片选择器:Matisse
Matisse 是一个为Android精心设计的本地图像和视频选择器。你可以
在活动或片段中使用它
选择包含JPEG、PNG、GIF的图像和包含MPEG、MP4的视频
应用不同的主题,包括两个内置主题和自定义主题
不同的图像加载器
定义自定义筛选规则
Zhihu Style | Dracula Style | Preview |
---|---|---|
![]() | ![]() | ![]() |
下载使用
Gradle:
repositories {
jcenter()
}
dependencies {
implementation 'com.zhihu.android:matisse:$latest_version'
}
混淆
如果用的是 Glide
添加规则:
-dontwarn com.squareup.picasso.**
如果用的是 Picasso 添加规则:
-dontwarn com.bumptech.glide.**
怎样使用他呢?
权限
android.permission.READ_EXTERNAL_STORAGE
android.permission.WRITE_EXTERNAL_STORAGE
所以,如果您的目标是android6.0+,那么您需要在下一步之前处理运行时权限请求。
Simple usage snippet
启动 MatisseActivity
从 活动的 Activity
or Fragment
:
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())
.showPreview(false) // Default is `true`
.forResult(REQUEST_CODE_CHOOSE);
主题
有两个内置的主题可以用来开始 MatisseActivity
:
R.style.Matisse_Zhihu
(白天模式)R.style.Matisse_Dracula
(夜间模式)
你也可以随心所欲地定义自己的主题。
接收结果
在 onActivityResult()
回调 Activity
or Fragment
:
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);
}
}
github地址:https://github.com/zhihu/matisse
下载地址:matisse-master.zip