- 支持设置字体大小
- 支持设置字体大小
- 支持设置预览提示文字
- 支持设置、取消设置,粗体
- 支持设置、取消设置,斜体
- 支持设置、取消设置,下划线
- 支持增加分隔线
- 支持插入图片(插入图片url)
- 支持撤销、取消撤销,上一步操作
- 支持清空所有内容
- 支持上传图片
- 支持回显
- 支持光标移动回显已设置的属性项
- 支持字体大小改变监听
正文
- 定义操作接口和字体大小枚举
public interface ILinghitRichEditor {
void attachWebView(WebView webView);
void dispatchDestroy();
void setTitleSize(TitleSizeEnum sizeEnum);
void setDefaultTitleSize();
TitleSizeEnum getCurrentTitleSize();
void setFrameSize(int width, int height);
void setTextPlaceholder(String placeholder);
void toggleBold();
void toggleItalic();
void toggleUnderline();
void addDivider();
void toggleDeleteLine();
void insertImages(String... imgUrls);
void insertImages(
LinghitRichEditorUploadOption uploadOption,
LinghitRichEditorImageCompressOption compressOption,
LinghitRichEditorImageCompressCallback uploadCallback);
void cancelUploadFileTasks(Object... uploadTag);
void cancelCompressImageTasks(String... imageCompressTag);
void undo();
void redo();
void clearAll();
void setHtml(String contents);
void getHtml(OnMethodResultCallback methodResultCallback);
void getInsertImgUrl(int position, OnMethodResultCallback callback);
interface AfterInitialLoadListener {
void onAfterInitialLoad(boolean isReady);
}
interface OnMethodResultCallback {
void onMethodResult(String result);
}
interface OnCursorMoveListener {
void onCursorMove(boolean isBold, boolean isItalic, boolean isUnderline, boolean isDeleteLine, String currentFont);
}
interface OnTitleSizeChangeListener {
void onTitleSizeChange(TitleSizeEnum beforeTitleSize, TitleSizeEnum currentTitleSize, boolean isDefaultTitleSize);
}
void setOnInitialLoadListener(AfterInitialLoadListener listener);
boolean isRegisterInitialLoadListener(AfterInitialLoadListener listener);
void setOnCursorMoveListener(OnCursorMoveListener onCursorMoveListener);
boolean isRegisterOnCursorMoveListener(OnCursorMoveListener onCursorMoveListener);
void setOnTitleSizeChangeListener(OnTitleSizeChangeListener onTitleSizeChangeListener);
}
- 标题文字大小枚举
public enum TypeEnum {
BOLD("bold"),
ITALIC("italic"),
UNDERLINE("underline"),
DELETE_LINE("deleteline"),
CURRENT_FONT("currentFont");
private String mName;
TypeEnum(String name) {
this.mName = name;
}
public String getName() {
return mName;
}
@Override
public String toString() {
return this.mName;
}
}
- 上传、压缩参数(图片上传参数)
public class LinghitRichEditorUploadOption {
private String mUploadUrl;
private Map<String, Object> mHeaderMap;
private Map<String, Object> mParamsMap;
private String mFileKey;
private List<File> mFiles;
private Object mTag;
private LinghitRichEditorUploadOption(Builder builder) {
this.mUploadUrl = builder.mUploadUrl;
this.mHeaderMap = builder.mHeaderMap == null ? new HashMap<String, Object>() : builder.mHeaderMap;
this.mParamsMap = builder.mParamsMap == null ? new HashMap<String, Object>() : builder.mParamsMap;
this.mFileKey = builder.mFileKey;
this.mFiles = builder.mFiles == null ? new ArrayList<File>() : builder.mFiles;
this.mTag = builder.mTag;
}
public static class Builder {
private String mUploadUrl;
private Map<String, Object> mHeaderMap;
private Map<String, Object> mParamsMap;
private String mFileKey;
private List<File> mFiles;
private Object mTag;
private Builder() {
}
public static Builder newBuilder(String uploadUrl, String fileKey, File file) {
ArrayList<File> files = new ArrayList<>();
files.add(file);
return new Builder(uploadUrl, fileKey, files);
}
public static Builder newBuilder(String uploadUrl, String fileKey, File... files) {
return new Builder(uploadUrl, fileKey, Arrays.asList(files));
}
public static Builder newBuilder(String uploadUrl, String fileKey, String... filePaths) {
ArrayList<File> files = new ArrayList<>();
for (String filePath : filePaths) {
files.add(new File(filePath));
}
return new Builder(uploadUrl, fileKey, files);
}
public Builder addFile(String fileKey, File file) {
this.mFileKey = fileKey;
if (this.mFiles == null) {
this.mFiles = new ArrayList<>();
}
mFiles.add(file);
return this;
}
public Builder addFile(String fileKey, File... files) {
this.mFileKey = fileKey;
if (this.mFiles == null) {
this.mFiles = new ArrayList<>();
}
mFiles.addAll(Arrays.asList(files));
return this;
}
public Builder setTag(Object tag) {
this.mTag = tag;
return this;
}
public Builder setHeaderMap(Map<String, Object> headerMap) {
this.mHeaderMap = headerMap;
return this;
}
public Builder addHeader(String key, Object value) {
if (this.mHeaderMap == null) {
this.mHeaderMap = new HashMap<>();
}
mHeaderMap.put(key, value);
return this;
}
public Builder addHeader(Map<String, Object> headerMap) {
if (this.mHeaderMap == null) {
this.mHeaderMap = new HashMap<>();
}
mHeaderMap.putAll(headerMap);
return this;
}
public Builder setParamsMap(Map<String, Object> paramsMap) {
this.mParamsMap = paramsMap;
return this;
}
public Builder addParams(String key, Object value) {
if (this.mParamsMap == null) {
this.mParamsMap = new HashMap<>();
}
mParamsMap.put(key, value);
return this;
}
public Builder addParams(Map<String, Object> paramsMap) {
if (this.mParamsMap == null) {
this.mParamsMap = new HashMap<>();
}
mParamsMap.putAll(paramsMap);
return this;
}
public Builder setUploadUrl(String uploadUrl) {
mUploadUrl = uploadUrl;
return this;
}
public Builder setFilesMap(String key, List<File> files) {
this.mFiles = files;
return this;
}
public Builder(String uploadUrl, String fileKey, List<File> files) {
this.mUploadUrl = uploadUrl;
this.mFileKey = fileKey;
this.mFiles = files;
}
public LinghitRichEditorUploadOption build() {
return new LinghitRichEditorUploadOption(this);
}
}
}
下班了,下次再copy。。。。