本文主要是介绍android图库选择器Matisse的应用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
图库选择器Matisse的应用
- 欢迎使用Matisse图库选择器
- 添加依赖
- 添加权限
- 代码混淆
- 代码应用
欢迎使用Matisse图库选择器
Matisse是一款精心设计的Android本地图像和视频选择器。您可以
- 在Activity或Fragment中使用它
- 选择包括JPEG,PNG,GIF和视频在内的图像,包括MPEG,MP4
- 应用不同的主题,包括两个内置主题和自定义主题
- 不同的图像加载器
- 自定义过滤规则
添加依赖
repositories {jcenter()
}dependencies {compile 'com.zhihu.android:matisse:$latest_version'
}
添加权限
android.permission.WRITE_EXTERNAL_STORAGE
代码混淆
如果您使用Picasso作为图像引擎,请添加规则:
-dontwarn com.squareup.picasso.**
如果您使用Glide作为图像引擎,请添加规则:
-dontwarn com.bumptech.glide.**
代码应用
/*** choose是选择的内容,* showSingleMediaType()是否只显示选择的类型的缩略图,* capture()是否提供拍照功能* captureStrategy()存储位置* countable()是否显示选中数量,* maxSelectable()最大选择数,* addFilter()添加一个过滤器,是在我们选择的类型上进一步过滤。* Filter接口有两个方法,第一个方法返回需要过滤的数据类型,第二个方法决定是否过滤,* gridExpectedSize()缩略图展示的大小,建议120dp* thumbnailScale(0.87f)缩略图的清晰程度(与内存占用有关)。* imageEngine()是我们自定义加载图片框架。* 过滤的话就return new IncapableCause("过滤的原因"); 填入过滤的原因即可。* theme主题色,R.style.Matisse_Zhihu (灯光模式),R.style.Matisse_Dracula (暗模式)* restrictOrientation屏幕方向* originalEnable是否支持原图* maxOriginalSize原图大小* autoHideToolbarOnSingleTap是否自动隐藏Toolbar*/Matisse.from(CommonBrowserActivity.this).choose(MimeType.ofImage(), true).showSingleMediaType(true).capture(true).captureStrategy(new CaptureStrategy(true, "这里填写配置文件中provider的authorities值", "目录名称")).countable(true).maxSelectable(9).theme("这里可以自定义主题风格").addFilter(new Filter() {@Overrideprotected Set<MimeType> constraintTypes() {return new HashSet<MimeType>() {{add(MimeType.GIF);}};}@Overridepublic IncapableCause filter(Context context, Item item) {if (!needFiltering(context, item)) {return null;} else {return new IncapableCause(IncapableCause.DIALOG, "暂不支持您选择的图片类型");}}}).setOnSelectedListener(new OnSelectedListener() {@Overridepublic void onSelected(List<Uri> uriList, List<String> pathList) {}}).restrictOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT).thumbnailScale(0.95f).imageEngine("图片选择框架默认Glide v3,如果你使用的是Glide v4则需要自己实现").forResult("这里填写请求码,用于结果回调");
@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {if (resultCode == Activity.RESULT_OK) {if (requestCode == "这里是你的请求码") {// 返回结果List<Uri> list = Matisse.obtainResult(data);// 具体业务逻辑实现}}}
这篇关于android图库选择器Matisse的应用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!