效果展示
-
相机
相机.gif
-
裁剪
裁剪.gif
-
Behavior 动画
动画.gif
-
运行时权限申请
运行时权限.gif
功能简介
-
图片选择器
- 权限申请
- 选择图片
- 文件夹的选择
- 角标视图的绘制
- 集成系统拍照(后期慢慢替换)
- 拍照后的图片会添加到当前目录和所有文件夹目录
- 集成系统图片裁剪(后期慢慢替换)
- 启动裁剪时只能选中一张图片
-
拍照(调用系统)
- 权限申请
- 7.0 以后指定 FileProvider 的 Authority
- 指定拍照后的输出目录
- 指定拍照后的压缩质量
- 采样压缩
- 质量压缩
- 集成了图片裁剪
- 回调拍摄后的图片
- 刷新文件管理器, 显示该图片
-
裁剪(调用系统)
- 权限申请
- 7.0 以后指定 FileProvider 的 Authority
- 指定裁剪输出目录
- 指定裁剪后图片压缩质量
- 采用质量压缩
- 回调裁剪后的图片
- 刷新文件管理器, 显示该图片
-
图片选择器
- 共享元素
- 支持拖拽的ViewPager的自定义
- 拖拽抖动动画
使用方式
- 图片选择器(集成了拍照和裁剪)
PicturePickerManager.with(this)
.setThreshold(etAlbumThreshold.text.toString().toInt())// 一共选中的数量
.setSpanCount(etSpanCount.text.toString().toInt())// 每行展示的数目
.isShowScrollBehavior(checkboxAnimation.isChecked)// Behavior 动画
.setToolbarBackgroundColorRes(R.color.colorPrimary) // Toolbar 背景设置
.setIndicatorSolidColorRes(R.color.colorPrimary)// 选中指示器的颜色
.setIndicatorBorderColorRes(R.color.colorPrimary, android.R.color.white)// 指示器边界的颜色
.setPickerItemBackgroundColorRes(android.R.color.white)// 条目背景色
// 开启相机支持
.setCameraSupport(checkboxCamera.isChecked)
.setFileProviderAuthority("$packageName.FileProvider")// 指定 FileProvider 的 authority, 用于 7.0 获取文件 URI
.setCameraQuality(80)
.setCameraDirectory(APP_DIRECTORY)// 相机文件存储路径
// 开启图片裁剪支持(开启裁剪, 图片最多选择一张)
.setCropSupport(checkboxCrop.isChecked)
.setCropDirectory(APP_DIRECTORY)// 裁剪文件存储路径
.setCropSize(1000, 1000)
.setCropQuality(80)
// 图片加载框架注入
.setPictureLoader { context, uri, imageView -> Glide.with(context).load(uri).into(imageView) }
// 获取图片选择的回调
.start { it.forEach { Toast.makeText(this, it, Toast.LENGTH_SHORT).show() } }
- 相机(集成了裁剪)
PictureTakeManager.with(this)
.setFileProviderAuthority("$packageName.FileProvider")// 指定 FileProvider 的 authority, 用于 7.0 获取文件 URI
.setCameraDirectory(APP_DIRECTORY)
.setCameraQuality(80)
// 拍照集成裁剪
.setCropSupport(true)
.setCropDirectory(APP_DIRECTORY)
.setCropSize(1000, 1000)
.setCropQuality(80)
// 获取拍照后的图片回调
.take { Toast.makeText(this, it, Toast.LENGTH_SHORT).show() }
- 裁剪
PictureCropManager.with(this)
.setFileProviderAuthority("$packageName.FileProvider")
.setCropSize(1000, 1000)// 裁剪框的尺寸
.setCropQuality(80)// 裁剪后压缩的质量
.setOriginFile(ORIGIN_IMAGE_PATH)// 裁剪图片的路径
.setCropDirectory(APP_DIRECTORY)// 裁剪后图片存储目录
.crop {Toast.makeText(this, it, Toast.LENGTH_SHORT).show() }
- 图片查看器
PictureWatcherManager.with(this)
.setIndicatorBorderColorRes(R.color.colorPrimary, android.R.color.white)// 指示器边界的颜色
.setIndicatorSolidColorRes(R.color.colorPrimary)// 选中指示器的颜色
.setIndicatorTextColorRes(android.R.color.white)// 指示器文本颜色
.setPictureUris(uris, 0)// 需要展示图片集合
.setSharedElement(imageView)// 共享元素
.setPictureLoader{ context, uri, imageView -> Glide.with(context).load(uri).into(imageView) }
.start()
网友评论