前言
APP 总是少不了集成图库,热门开源图库被我集成了一遍。但最终还是决定使用 kotlin 打造自己的图库。
效果预览
快速集成
Step 1. Add the JitPack repository to your build file
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
Step 2. Add the dependency
dependencies {
implementation 'com.github.ThirdPrince:VanGogh:1.0.7'
}
Step 3. Add android:requestLegacyExternalStorage="true"
android:requestLegacyExternalStorage="true"
to your mainifest
使用方法
1 , 获取图片
VanGogh.onlyImage().startForResult(this,
onMediaResult = object : OnMediaResult {
override fun onResult(mediaItemList: List<MediaItem>) {
}
})
默认包含 gif 。
VanGogh.onlyImage(false).startForResult(this,
onMediaResult = object : OnMediaResult {
override fun onResult(mediaItemList: List<MediaItem>) {
}
})
onlyImage(false) 表示不包含gif
2 , 使用头像
VanGogh.startForAvatarResult(this,onAvatarResult = object :
OnAvatarResult {
override fun onResult(image: MediaItem) {
}
})
3 , 获取Media
VanGogh.getMedia().startForResult(this,
onMediaResult = object : OnMediaResult {
override fun onResult(mediaItemList: List<MediaItem>) {
}
})
getMedia 默认参数 包含 gif。
getMedia(false) 不包含 gif。
4 , 单独拍照
VanGogh.startForCameraResult(this,object :OnCameraResult{
override fun onResult(image: MediaItem) {
}
})
直接拍照返回
5 , 相册添加拍照选择
VanGogh.getMedia().enableCamera().startForResult(this,
onMediaResult = object : OnMediaResult {
override fun onResult(mediaItemList: List<MediaItem>) {
}
})
添加enableCamera ,也就说默认相册里是没有拍照的选择。
6 ,MediaItem 使用字段
图片默认是压缩的(gif 没有压缩)
建议使用 path 字段。
MeidiaItem 提供了判断是否是Video ,gif 的方法。
7 ,相册 选择 Media 个数
VanGogh.getMedia().setMaxMediaCount(9).startForResult(this,
onMediaResult = object : OnMediaResult {
}
})
setMaxMediaCount() 设置最大的选择Media 个数
8,IM 中使用
VanGogh.setMediaTitleSend().setMaxMediaCount(9).startForResult(this,
onMediaResult = object : OnMediaResult {
override fun onResult(mediaItemList: List<MediaItem>) {
}
})
源码
下载体验地址: www.pgyer.com/lzGS