package com.llf.photopicker;
import android.os.Environment;
import com.llf.basemodel.utils.FileUtil;
import java.io.Serializable;
/**
* Created by llf on 2017/3/10.
* 图片选择器配置类
*/
public class ImgSelConfig implements Serializable{
/**
* 是否需要裁剪
*/
public boolean needCrop;
/**
* 是否多选
*/
public boolean multiSelect;
/**
* 最多选择图片数
*/
public int maxNum = 9;
/**
* 第一个item是否显示相机
*/
public boolean needCamera;
/**
* 拍照存储路径
*/
public String filePath;
/**
* 裁剪输出大小
*/
public int aspectX = 1;
public int aspectY = 1;
public int outputX = 500;
public int outputY = 500;
private ImgSelConfig(Builder builder) {
this.needCrop = builder.needCrop;
this.multiSelect = builder.multiSelect;
this.maxNum = builder.maxNum;
this.needCamera = builder.needCamera;
this.filePath = builder.filePath;
this.aspectX = builder.aspectX;
this.aspectY = builder.aspectY;
this.outputX = builder.outputX;
this.outputY = builder.outputY;
}
public static class Builder implements Serializable{
private boolean needCrop = false;
private boolean multiSelect = true;
private int maxNum = 9;
private boolean needCamera = true;
private String filePath;
private int aspectX = 1;
private int aspectY = 1;
private int outputX = 400;
private int outputY = 400;
public Builder() {
if (FileUtil.isSdCardAvailable())
filePath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/Camera";
else
filePath = Environment.getRootDirectory().getAbsolutePath() + "/Camera";
FileUtil.createDir(filePath);
}
public Builder needCrop(boolean needCrop) {
this.needCrop = needCrop;
return this;
}
public Builder multiSelect(boolean multiSelect) {
this.multiSelect = multiSelect;
return this;
}
public Builder maxNum(int maxNum) {
this.maxNum = maxNum;
return this;
}
public Builder needCamera(boolean needCamera) {
this.needCamera = needCamera;
return this;
}
private Builder filePath(String filePath) {
this.filePath = filePath;
return this;
}
public Builder cropSize(int aspectX, int aspectY, int outputX, int outputY) {
this.aspectX = aspectX;
this.aspectY = aspectY;
this.outputX = outputX;
this.outputY = outputY;
return this;
}
public ImgSelConfig build() {
return new ImgSelConfig(this);
}
}
}