package cn.flightfeather.thirdapp.util.photo
|
|
import android.app.Activity
|
import android.content.Intent
|
import android.support.v4.app.Fragment
|
import com.lcw.library.imagepicker.ImagePicker
|
import com.lcw.library.imagepicker.activity.ImagePickerActivity
|
import com.lcw.library.imagepicker.manager.ConfigManager
|
import com.lcw.library.imagepicker.utils.ImageLoader
|
import java.util.*
|
|
|
/**
|
* 由于 [ImagePicker] 构造方法为私有,无法继承重写。
|
* 因此复制 [ImagePicker],添加从fragment 启动 startActivityResult 的方法
|
* @author riku
|
* Date: 2019/11/27
|
*/
|
class ImagePicker2 {
|
|
val EXTRA_SELECT_IMAGES = "selectItems"
|
|
companion object {
|
@Volatile
|
private var mImagePicker: ImagePicker2? = null
|
|
@JvmStatic
|
val instance: ImagePicker2
|
get() {
|
if (mImagePicker == null) {
|
synchronized(ImagePicker2::class.java) {
|
if (mImagePicker == null) {
|
mImagePicker =
|
ImagePicker2()
|
}
|
}
|
}
|
return mImagePicker!!
|
}
|
}
|
|
|
|
/**
|
* 设置标题
|
*
|
* @param title
|
* @return
|
*/
|
fun setTitle(title: String): ImagePicker2 {
|
ConfigManager.getInstance().title = title
|
return instance
|
}
|
|
/**
|
* 是否支持相机
|
*
|
* @param showCamera
|
* @return
|
*/
|
fun showCamera(showCamera: Boolean): ImagePicker2 {
|
ConfigManager.getInstance().isShowCamera = showCamera
|
return instance
|
}
|
|
/**
|
* 是否展示图片
|
*
|
* @param showImage
|
* @return
|
*/
|
fun showImage(showImage: Boolean): ImagePicker2 {
|
ConfigManager.getInstance().isShowImage = showImage
|
return instance
|
}
|
|
/**
|
* 是否展示视频
|
*
|
* @param showVideo
|
* @return
|
*/
|
fun showVideo(showVideo: Boolean): ImagePicker2 {
|
ConfigManager.getInstance().isShowVideo = showVideo
|
return instance
|
}
|
|
|
/**
|
* 图片最大选择数
|
*
|
* @param maxCount
|
* @return
|
*/
|
fun setMaxCount(maxCount: Int): ImagePicker2 {
|
ConfigManager.getInstance().maxCount = maxCount
|
return instance
|
}
|
|
/**
|
* 设置单类型选择(只能选图片或者视频)
|
*
|
* @param isSingleType
|
* @return
|
*/
|
fun setSingleType(isSingleType: Boolean): ImagePicker2 {
|
ConfigManager.getInstance().isSingleType = isSingleType
|
return instance
|
}
|
|
|
/**
|
* 设置图片加载器
|
*
|
* @param imageLoader
|
* @return
|
*/
|
fun setImageLoader(imageLoader: ImageLoader): ImagePicker2 {
|
ConfigManager.getInstance().imageLoader = imageLoader
|
return instance
|
}
|
|
/**
|
* 设置图片选择历史记录
|
*
|
* @param imagePaths
|
* @return
|
*/
|
fun setImagePaths(imagePaths: ArrayList<String>): ImagePicker2 {
|
ConfigManager.getInstance().imagePaths = imagePaths
|
return instance
|
}
|
|
/**
|
* 启动
|
*
|
* @param activity
|
*/
|
fun start(activity: Activity?, requestCode: Int) {
|
val intent = Intent(activity, ImagePickerActivity::class.java)
|
activity?.startActivityForResult(intent, requestCode)
|
}
|
|
fun start(fragment: Fragment?, requestCode: Int) {
|
val intent = Intent(fragment?.activity, ImagePickerActivity::class.java)
|
fragment?.startActivityForResult(intent, requestCode)
|
}
|
}
|