package com.ypx.imagepicker.bean.selectconfig;
|
|
import android.graphics.Color;
|
import android.os.Parcel;
|
import android.os.Parcelable;
|
import android.util.Size;
|
|
import com.ypx.imagepicker.widget.cropimage.Info;
|
|
/**
|
* Time: 2019/10/27 18:53
|
* Author:ypx
|
* Description: 单图剪裁配置类
|
*/
|
public class CropConfigParcelable implements Parcelable {
|
//充满式剪裁
|
public static final int STYLE_FILL = 1;
|
//留白式剪裁
|
public static final int STYLE_GAP = 2;
|
private int cropRatioX = 1;
|
private int cropRatioY = 1;
|
private boolean isCircle = false;
|
private int cropRectMargin = 0;
|
private int cropStyle = STYLE_FILL;
|
private int cropGapBackgroundColor = Color.BLACK;
|
|
private boolean saveInDCIM = false;
|
|
// private Size outPutSize;
|
private long maxOutPutByte;
|
private boolean isLessOriginalByte;
|
private Info cropRestoreInfo;
|
private boolean isSingleCropCutNeedTop = false;
|
|
public boolean isSingleCropCutNeedTop() {
|
return isSingleCropCutNeedTop;
|
}
|
|
public void setSingleCropCutNeedTop(boolean singleCropCutNeedTop) {
|
isSingleCropCutNeedTop = singleCropCutNeedTop;
|
}
|
|
protected CropConfigParcelable() {
|
|
}
|
|
protected CropConfigParcelable(Parcel in) {
|
cropRatioX = in.readInt();
|
cropRatioY = in.readInt();
|
isCircle = in.readByte() != 0;
|
cropRectMargin = in.readInt();
|
cropStyle = in.readInt();
|
cropGapBackgroundColor = in.readInt();
|
saveInDCIM = in.readByte() != 0;
|
maxOutPutByte = in.readLong();
|
isLessOriginalByte = in.readByte() != 0;
|
cropRestoreInfo = in.readParcelable(Info.class.getClassLoader());
|
isSingleCropCutNeedTop=in.readByte() != 0;
|
}
|
|
public static final Creator<CropConfigParcelable> CREATOR = new Creator<CropConfigParcelable>() {
|
@Override
|
public CropConfigParcelable createFromParcel(Parcel in) {
|
return new CropConfigParcelable(in);
|
}
|
|
@Override
|
public CropConfigParcelable[] newArray(int size) {
|
return new CropConfigParcelable[size];
|
}
|
};
|
|
|
public long getMaxOutPutByte() {
|
return maxOutPutByte;
|
}
|
|
public void setMaxOutPutByte(long maxOutPutByte) {
|
this.maxOutPutByte = maxOutPutByte;
|
}
|
|
public boolean isLessOriginalByte() {
|
return isLessOriginalByte;
|
}
|
|
public void setLessOriginalByte(boolean lessOriginalByte) {
|
isLessOriginalByte = lessOriginalByte;
|
}
|
|
public Info getCropRestoreInfo() {
|
return cropRestoreInfo;
|
}
|
|
public void setCropRestoreInfo(Info cropRestoreInfo) {
|
this.cropRestoreInfo = cropRestoreInfo;
|
}
|
|
public boolean isSaveInDCIM() {
|
return saveInDCIM;
|
}
|
|
public void saveInDCIM(boolean saveInDCIM) {
|
this.saveInDCIM = saveInDCIM;
|
}
|
|
public int getCropStyle() {
|
return cropStyle;
|
}
|
|
public void setCropStyle(int cropStyle) {
|
this.cropStyle = cropStyle;
|
}
|
|
public int getCropGapBackgroundColor() {
|
return cropGapBackgroundColor;
|
}
|
|
public void setCropGapBackgroundColor(int cropGapBackgroundColor) {
|
this.cropGapBackgroundColor = cropGapBackgroundColor;
|
}
|
|
public boolean isCircle() {
|
return isCircle;
|
}
|
|
public void setCircle(boolean circle) {
|
isCircle = circle;
|
}
|
|
|
public int getCropRectMargin() {
|
return cropRectMargin;
|
}
|
|
public void setCropRectMargin(int cropRectMargin) {
|
this.cropRectMargin = cropRectMargin;
|
}
|
|
public int getCropRatioX() {
|
if (isCircle) {
|
return 1;
|
}
|
return cropRatioX;
|
}
|
|
public void setCropRatio(int x, int y) {
|
this.cropRatioX = x;
|
this.cropRatioY = y;
|
}
|
|
public int getCropRatioY() {
|
if (isCircle) {
|
return 1;
|
}
|
return cropRatioY;
|
}
|
|
public boolean isGap() {
|
return cropStyle == STYLE_GAP;
|
}
|
|
public boolean isNeedPng() {
|
return isCircle || getCropGapBackgroundColor() == Color.TRANSPARENT;
|
}
|
|
/**
|
* Describe the kinds of special objects contained in this Parcelable
|
* instance's marshaled representation. For example, if the object will
|
* include a file descriptor in the output of {@link #writeToParcel(Parcel, int)},
|
* the return value of this method must include the
|
* {@link #CONTENTS_FILE_DESCRIPTOR} bit.
|
*
|
* @return a bitmask indicating the set of special object types marshaled
|
* by this Parcelable object instance.
|
*/
|
@Override
|
public int describeContents() {
|
return 0;
|
}
|
|
/**
|
* Flatten this object in to a Parcel.
|
*
|
* @param dest The Parcel in which the object should be written.
|
* @param flags Additional flags about how the object should be written.
|
* May be 0 or {@link #PARCELABLE_WRITE_RETURN_VALUE}.
|
*/
|
@Override
|
public void writeToParcel(Parcel dest, int flags) {
|
dest.writeInt(cropRatioX);
|
dest.writeInt(cropRatioY);
|
dest.writeByte((byte) (isCircle ? 1 : 0));
|
dest.writeInt(cropRectMargin);
|
dest.writeInt(cropStyle);
|
dest.writeInt(cropGapBackgroundColor);
|
dest.writeByte((byte) (saveInDCIM ? 1 : 0));
|
dest.writeLong(maxOutPutByte);
|
dest.writeByte((byte) (isLessOriginalByte ? 1 : 0));
|
dest.writeParcelable(cropRestoreInfo, flags);
|
dest.writeByte((byte) (isSingleCropCutNeedTop ? 1 : 0));
|
}
|
}
|