Android 图片选择器,图片\视频选择,支持UI界面完全自定义,一款更加灵活的多媒体选择工具。
- 支持图片,视频查询
- 支持多数量选择
- 支持打开拍照,录像
- 支持自定义图片加载
- 支持自定义图片压缩
- 支持自定义图片裁剪
- 支持文件过滤,加载指定格式图片
- 适配AndroidQ
- 充分自由定制
- 默认的UI风格
- 实现wisdom_lib所有功能
- 可以基于UI层进行修改
allprojects {
repositories {
mavenCentral()
}
}
dependencies {
//核心库版本
implementation 'io.github.zguop:wisdom_lib:1.0.24'
//UI版本
implementation 'io.github.zguop:wisdom_impl:1.0.24'
}
只配置需要的api即可
Wisdom.of(this@MainActivity)
.config(ofType) //选择类型 ofAll() ofImage() ofVideo()
.imageEngine(imageEngine) //图片加载引擎
.compressEngine(compressEngine)
.cropEngine(cropEngine)
.selectLimit(selectLimit) //选择的最大数量 数量1为单选模式
.fileProvider("$packageName.utilcode.provider", "image") //兼容android7.0
.cameraEngine(cameraEngine) //自定义相机
.isCamera(isCamera) //是否打开相机,
.setMedias(resultMedia)
.filterImageMaxFileSize(imageFilterMaxFile)
.filterVideoMaxFileSize(videoFilterMaxFile)
.mimeTypeSet(mimeTypeSet, false)
.forResult(
0x11,
PhotoWallActivity::class.java
) //requestCode,界面实现Activity,需要继承于核心库WisdomWallActivity
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (Activity.RESULT_OK == resultCode) {
if (requestCode == 0x11 && data != null) {
val resultMedia = Wisdom.obtainResult(data) //获取回调数据 类型Media 包含String path, Uri uri 路径
Log.e("aa", resultMedia.toString())
resultMedia.forEach { media ->
Log.e("aa", " ===================================== ")
Log.e("aa", " uri=" + media.uri)
Log.e("aa", " path=" + media.path)
Log.e("aa", " cropUri=" + media.cropUri)
Log.e("aa", " compressUri=" + media.compressUri)
Log.e("aa", " size=" + media.size)
Log.e("aa", " width=" + media.width)
Log.e("aa", " height=" + media.height)
Log.e("aa", " orientation=" + media.orientation)
Log.e("aa", " mimeType=" + media.mineType)
Log.e("aa", " duration=" + media.duration)
Log.e("aa", " fileName=" + media.displayName)
Log.e("aa", " ===================================== ")
}
}
}
}
//直接进入预览页面 预览图片
Wisdom.of(this@MainActivity)
.preview()
.imageEngine(imageEngine)
.setMedias(List<Media>)
.go(PhotoPreviewActivity::class.java)
框架提供扩展接口,实现各自自定义功能。可参考Demo中相应engine实现、可以拷贝使用
- ImageEngine 实现图片加载 -> GlideEngine 、PicassoEngine
- CompressEngine 实现图片压缩 -> TinyCompressEngine
- CropEngine 实现图片裁剪 -> CropperEngine 、UCropEngine
图 | 图 |
---|---|
时间:20220413(1.0.24)
内容:1.增加原图勾选回调 Wisdom.isFullImage(data:Intent)
时间:20220406(1.0.23)
内容:1.Media新增文件名称属性
时间:20220405(1.0.22)
内容:1.没啥改动,就是删除无用导包,UI部分词条优化
时间:20220331(1.0.21)
内容:1.新增width,height,orientations属性
2.新增CameraEngine扩展自定义相机
3.UI国际化保留zh,en,如需更多语言,支持自定义文案,在style配置[theme.xml](wisdom_impl/src/main/res/values/theme.xml)属性
时间:20210721(1.0.20)
内容:增加原图按钮是否显示的方法
时间:20210622(1.0.19)
内容:1.适配AndroidX;
2.适配AndroidQ;
3.增强文件筛选功能:最大图片限制,最大视频限制,文件类型筛选
4.整体优化
时间:20200705(1.0.16)
内容:新增图片裁剪接口,扩展图片裁剪功能,自定义实现CropEngine,demo集成UCrop和Cropper裁剪框架,具体在Demo中查看。
增加文件选择限制,超过 filterMaxFileSize 进行文件大小过滤。
时间:20200509(1.0.15)
内容:新增图片压缩接口,扩展图片压缩功能,demo集成tiny压缩框架,具体查看TinyCompressEngine类,后面更新luban压缩,其它代码优化
时间:20200507(1.0.13)
内容:增加string-pt,string-fr 语言描述~~~
时间:20191129(1.0.12)
内容:增加string-en 支持2中语言描述了~~~
时间:20191126(1.0.11)
内容:修改切换相册的弹框,不在使用popWindow实现,兼容太难啦 自己写了个view- -
时间:20191112(1.0.10)
内容:细节小修改,无任何影响
时间:20191102(1.0.9)
内容:默认勾选图片。扩展图片预览功能,可以直接进入图片预览界面浏览
时间:20190627(1.0.8)
内容:增强体验,在权限请求拒绝时,pop不可以再弹出
时间:20190626(1.0.7)
内容:修复了一个bug,进入预览页,由于相机的是否打开,疏忽了position的值,导致position值正确
时间:20190624(1.0.6)
内容:稳定相机兼容性
时间:20190621(1.0.5)
内容:低版本兼容api兼容,wisdom_impl导入发生资源冲突,则使用exclude group :'com.android.support' 移除support
时间:20190617(1.0.4)
内容:增加两种图片裁剪实例,sdk本身暂不提供裁剪接口,查看demo获取实现裁剪方式
时间:20190613(1.0.3)
内容:imageEngine增加到三个方法,分别加载(相册封面,缩略图,预览图) picasso加载适配
时间:20190612(1.0.2)
内容:一些功能优化,去除Media图片文件名字段,其实可以通过路径Path获取
时间:20190611(1.0.0)
内容:图片选择框架发布,支持图片or视频单选,多选,打开相机,图片预览
xiexie ni de guāng gù ! 喜欢的朋友轻轻右上角赏个star,您的鼓励会给我持续更新的动力。