Android富文本编辑器,一款支持撤销、加粗、斜体、下划线、有序无序列表、对齐、改文字大小、改文字颜色、插入图片、插入视频等功能,并且可设置cookie,自定义素材操作菜单的的编辑器。

github地址:https://github.com/yeaper/RichEditor

Android富文本编辑器_第1张图片

1.控件使用

RichEditor是富文本编辑器,EditorOpMenuView是操作栏控件,两个需要配合使用,xml引用方式如下:

<com.yyp.editor.RichEditor    android:id="@+id/editor"    android:layout_width="match_parent"    android:layout_height="wrap_content"/><com.yyp.editor.widget.EditorOpMenuView    android:id="@+id/editor_op_menu_view"    android:layout_width="match_parent"    android:layout_height="wrap_content"/>

两个控件最后需要绑定

mEditorOpMenuView.setRichEditor(mEditor);

2.编辑器相关设置

//设置占位文字mEditor.setPlaceholder("请填写文章正文内容(必填)");//设置编辑器文字大小mEditor.setEditorFontSize(16);//设置编辑器内边距mEditor.setPadding(10, 10, 10, 10);//设置编辑器背景色mEditor.setBackgroundColor(UIUtils.getResources().getColor(R.color._ffffff));//禁止编辑 包括长按复制、双击选中、点击mEditor.disableEdit();//配置同一界面的焦点切换,可传多个输入框控件mEditor.hideWhenViewFocused((editText1, editText2, editText3, ...);

3.编辑器操作

//撤销mEditor.undo();//反撤销mEditor.redo();//加粗mEditor.setBold();//斜体mEditor.setItalic();//删除线mEditor.setStrikeThrough();//下划线mEditor.setUnderline();//设置文字颜色 传int色值mEditor.setTextColor(color);//设置文字大小 支持1-7字号mEditor.setFontSize(size);//左对齐mEditor.setAlignLeft();//居中对齐mEditor.setAlignCenter();//右对齐mEditor.setAlignRight();//两端对齐mEditor.setAlignFull();//有序列表mEditor.setNumbers();//无序列表mEditor.setBullets();//清除所有格式mEditor.removeFormat();//插入图片mEditor.insertImage("图片地址", "提示文字");//插入视频mEditor.insertVideoFrame("视频封面地址", videoId, "视频名字", size);//插入文本mEditor.insertHtml("文本内容");

4.监听接口使用

//编辑器焦点监听mEditor.setOnEditorFocusListener(new OnEditorFocusListener() {         @Override    public void onEditorFocus(boolean isFocus) {             mEditorOpMenuView.displayMaterialsMenuView(false); //编辑器重获焦点,素材菜单要隐藏        mEditorOpMenuView.setVisibility(isFocus ? View.VISIBLE : View.GONE);    }});//编辑器文本输入回调mEditor.setOnTextChangeListener(new OnTextChangeListener() {         @Override    public void onTextChange(String text) {             text.length();    }});//监听素材菜单点击事件mEditorOpMenuView.setOnMaterialsItemClickListener(new OnMaterialsItemClickListener() {         @Override    public void onMaterialsItemClick(MaterialsMenuBean bean) {             switch (bean.getId()){                 case MATERIALS_IMAGE: //从素材图片库选择                break;            case MATERIALS_VIDEO: //从素材视频库选择                break;            case MATERIALS_TXT: //从素材文字库选择                break;            case LOCAL_IMAGE: //从本地图片库选择                break;            case LOCAL_VIDEO: //从本地视频库选择                break;        }    }});

5.遇到的问题与解决方案

问题: 编辑器展示的图片访问不了,需要传cookie验证

解决方案: 先前试过在WebViewClient的shouldInterceptRequest方法中,针对url设置cookie,但是cookie同步不及时,导致部分图片无法加载,后来考虑在加载图片前,先设置cookie,那么得出解决方案,先清除原来的cookie,然后为图片的ip地址设置新cookie,就可以访问了,这个方法在Webview.loadUrl()方法前调用即可。(注:android5.0以上记得打开cookie开关)

 //打开cookieandroid.webkit.CookieManager cookieManager = android.webkit.CookieManager.getInstance();cookieManager.setAcceptCookie(true);if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {         cookieManager.setAcceptThirdPartyCookies(this, true);}private void addCookies(String url) {         CookieManager cookieManager = CookieManager.getInstance();    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {             cookieManager.removeSessionCookies(null);        PersistentCookieStore cookieStore = new PersistentCookieStore(UIUtils.getContext());        for (Cookie cookie : cookieStore.getCookies()) {      //添加cookie            cookieManager.setCookie(url, String.format("%s=%s", cookie.name(), cookie.value()));        }        cookieManager.flush();    }}

问题: 为了方便编辑,图片、视频之间需要保持间距

解决方案: css样式文件中,设置margin边距即可

/* 图片和视频:宽度占满,高度自适应,下边距3px */IMAGE,img,video {         width: 100% !important;    height: auto;    margin: 0px 0px 3px 0px !important;}

更多相关文章

  1. Android中给Button加上selector——点击按钮后变成不一样的图片
  2. Android图片异步加载的实现
  3. 【Android】 保存图片到系统图库, 并立即显示在图库中
  4. Android 获得图片并解码成缩略图以减少内存消耗
  5. Android加载/处理超大图片神器!SubsamplingScaleImageView(subsam
  6. Android修改icon和roundIcon后,显示的图标还是默认的图片
  7. android中异步加载图片
  8. android 从相册中获取图片设置成头像的问题:
  9. android 设置背景图片

随机推荐

  1. Android(安卓)Studio 手动创建活动(Activ
  2. Android之封装支付宝支付
  3. 动画效果编程基础详解--Animation Androi
  4. 【移动开发】Android中的底部菜单框架(Fra
  5. 在Android上面如何使用带有心跳检测的Soc
  6. Activity之启动模式(android:launchMode)
  7. 【android】Cursor记录集游标、ListView
  8. Android:pt 、sp、dp之间的换算
  9. android的文件系统结构及其引导过程的初
  10. Android实现计算器布局(四种布局方式)之Lin