- 老规矩先看下效果图
(最重要的自己想改动的话 也特别好改代码、样式等)
:
- 然后看下代码调用方式:
AlbumHelper.get(getContext())
.setAlbumType(AlbumType.IMAGE)
.setMaxNum(9)
.start(list -> {
ToastUtils.showToast(mContext, "" + list.size());
});
怎么样 是不是很简洁 也不用在onActivityResult回调里写代码再接收参数什么的 直接接口回调方式返回的
- 看下
AlbumHelper
类
/**
* 相册入口
*/
public class AlbumHelper {
private static AlbumHelper instance;
private Context context;
public List<AlbumBean> currentList = new ArrayList<>(); //当前选择的数据
public AlbumCallBack albumCallBack;
/**
* 一些参数
*/
public @AlbumType
int albumType = AlbumType.IMAGE;
public int maxNum = 1; //最大选择数量
public long videoMaxTime = -1; //视频最大时间 毫秒
public static AlbumHelper get() {
return get(null);
}
public static AlbumHelper get(Context context) {
if (null == instance) {
synchronized (AlbumHelper.class) {
if (null == instance) {
instance = new AlbumHelper(context);
}
}
}
return instance;
}
private AlbumHelper(Context context) {
if (null != context) {
this.context = context;
}
}
/**
* 设置相册type
*/
public AlbumHelper setAlbumType(@AlbumType int albumType) {
this.albumType = albumType;
return this;
}
/**
* 设置最大选择数量
*/
public AlbumHelper setMaxNum(int maxNum) {
this.maxNum = maxNum;
return this;
}
/**
* 设置视频最大时间 毫秒
*/
public AlbumHelper setVideoMaxTime(long videoMaxTime) {
this.videoMaxTime = videoMaxTime;
return this;
}
/**
* 开始
*/
public void start(AlbumCallBack albumCallBack) {
this.albumCallBack = albumCallBack;
currentList.clear();
Intent intent = new Intent(context, AlbumMainActivity.class);
context.startActivity(intent);
}
}
代码结构
百度云文件
- 文件我都上传到百度云了 需要的自取哦 可以的话再给个赞 哈哈哈
链接:https://pan.baidu.com/s/1PPKMYqKoiIdbVvCvwH4azw
提取码:z9vp
网友评论