图片选择其实在Android 项目中还是很常用的,拍照或者从相册中选择图片,视频等
像微信那样的手机相册选择器,我以前一直都在使用的一款,特来分享一哈
知乎图片选择框架Matisse
先来看看效果图:(可以自己改变样式和是否有相机)
预览效果图和微信一样左右滑动即可
导入依赖:
implementation 'com.zhihu.android:matisse:0.5.3-beta3'
点击按钮第一种场景调用:
/**
* MimeType.ofAll() -->全部类型
* MimeType.ofImage() -->图片
* MimeType.ofVideo() -->视频
* maxSelectable 选择的最大数量
*
*/
Matisse.from(PhotoActivity.this)
.choose(MimeType.ofAll())
.countable(true)
.maxSelectable(9)
.addFilter(new GifSizeFilter(320, 320, 5 * Filter.K * Filter.K))
.restrictOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED)
.thumbnailScale(0.85f)
.imageEngine(new GlideEngine())
.showPreview(false)
//这两行要连用 是否在选择图片中展示照相 和适配安卓7.0 FileProvider
.capture(true)
.captureStrategy(new CaptureStrategy(true,"PhotoPicker"))
//蓝色主题
// .theme(R.style.Matisse_Zhihu)
//黑色主题
.theme(R.style.Matisse_Dracula)
//Glide加载方式
.imageEngine(new GlideEngine())
//Picasso加载方式
// .imageEngine(new PicassoEngine())
//请求码
.forResult(REQUEST_CODE_CHOOSE);
点击按钮第二种场景调用:
Matisse.from(PhotoActivity.this)
.choose(MimeType.ofImage())
.countable(true)
.maxSelectable(9)
.addFilter(new GifSizeFilter(320, 320, 5 * Filter.K * Filter.K))
.restrictOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED)
.thumbnailScale(0.85f)
.imageEngine(new GlideEngine())
.showPreview(false)
.theme(R.style.Matisse_Zhihu)
//Glide加载方式
.imageEngine(new GlideEngine())
.forResult(REQUEST_CODE_CHOOSE);
数据接收:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE_CHOOSE && resultCode == RESULT_OK) {
//图片路径 同样视频地址也是这个
List pathList = Matisse.obtainPathResult(data);
//Uri 格式的
List pathList1 = Matisse.obtainResult(data);
for (int i = 0; i < pathList.size(); i++) {
Log.i("图片"+(i+1)+"地址",pathList.get(i));
}
}
}
选择图片确定,打印的数据:
特点:
Matisse 是知乎开源的一个漂亮的 Android 本地图片、视频选择器。其主要功能有:
选择包括 JPEG、PNG、GIF 格式的图片和 MPEG、MP4 格式的视频
支持自定义主题,包括两个内置的主题
不同的图片加载器
定义自定义过滤规则
在 Activities 和 Fragments 中使用良好
这是非常好用的一个库,希望能帮助到各位
官方文档地址:https://github.com/zhihu/Matisse/
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)