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); } } }