如何实现一个 Android 端的富文本编辑器实现原理

&Android富文本编辑器源码+服务端
秒后自动跳转到登录页
快捷登录:
举报类型:
不规范:上传重复资源
不规范:标题与实际内容不符
不规范:资源无法下载或使用
其他不规范行为
违规:资源涉及侵权
违规:含有危害国家安全等内容
违规:含有反动/色情等内容
违规:广告内容
详细原因:
任何违反下载中心规定的资源,欢迎Down友监督举报,第一举报人可获5-10下载豆奖励。
视频课程推荐
Android富文本编辑器源码+服务端
上传时间:
技术分类:
资源评价:
(6位用户参与评价)
已被下载&221&次
Android富文本编辑器源码+服务端,详细请下载查看。
本资料共包含以下附件:
Android富文本编辑器源码+服务端.rar
51CTO下载中心常见问题:
1.如何获得下载豆?
1)上传资料
2)评论资料
3)每天在首页签到领取
4)购买VIP会员服务,无需下载豆下载资源
5)更多途径:点击此处
2.如何删除自己的资料?
下载资料意味着您已同意遵守以下协议:
1.资料的所有权益归上传用户所有
2.未经权益所有人同意,不得将资料中的内容挪作商业或盈利用途
3.51CTO下载中心仅提供资料交流平台,并不对任何资料负责
4.本站资料中如有侵权或不适当内容,请邮件与我们联系()
5.本站不保证资源的准确性、安全性和完整性, 同时也不承担用户因使用这些资料对自己和他人造成任何形式的伤害或损失
相关专题推荐
Google正式在Android官网发布Android
本套视频教程专为希望成为Android开发
本专题收集了android开发的一系列小工
Android目前已经占据了全球智能手机操
本套视频是传智播客3G-Android就业班
本专题精选了Android开发相关的电子书
本专题视频共有67集,是传智播客3G-A
安卓移动平台自2007年11月开放源码以
本课程使用Android 2.3.3平台进行开发
此视频实战内容由浅入深,从游戏开发
新浪微博Android客户端开发视频教程是
本视频由黑马程序员的张泽华老师录制
一大波Android源码来袭。本专题为And
本专题为张泽华老师教授的Android开发
UI设计则是指对软件的人机交互、操作
OpenGL ES (OpenGL for Embedded Sys
意见或建议:
联系方式:
您已提交成功!感谢您的宝贵意见,我们会尽快处理js手工实现富文本编辑器原理 - 宝剑无锋&.&大巧不工 - ITeye技术网站
博客分类:
& 最近做了个手工给讨论打分的小工具,想标注出关键词句,想到了富文本编辑器,奈何这货没有小型的,只好手写了个最简单的。了解了一种富文本编辑器的实现手法,分享出来吧。
& 笔者非前端人员,欢迎各种喷各种板砖~。~——唯一要求,有实际内容。
& 详情请参考引用(对cheng5128的资料表示感谢)部分。
& 简单地说,就4个要点:
& 1)iframe显示效果,textarea保存真值
& 2)iframe document有一系列方法支持
&&& :execCommand&&&&&&&&&&&&&&&&&&&&&&&&&&& #比如带参“underline”即为下划线
&&& :.selection.rang.surroundContents&&&&&& #带ele参数,用ele包围(已处理标签交错)
&&& :……
& 3)封装、兼容处理
& 4)其他美化、优化、同步数据等处理
支持一下,最好写得可以开原大家一起改。用的话可以参考一下文尾的“引用”部分的链接。因为原文作者已经提供几乎全部的源代码了,所以只写了个要点。以后有时间了,手写个简单的,会补链接。谢谢支持!
zhaoningbo
浏览: 411325 次
来自: 北京
您好,我的是java的
我按您的方法 “3,基于& ...
优先级的区别 :
puts true and false
我弄出来了,但是有个问题想问问,为啥他拦截什么方法都要报错,比 ...
gqdy365 写道楼主,可以建私有项目吗?私有项目,我知道的 ...安卓富文本编辑器app或控件的开发
项目预算:待商议
开发周期:
发布时间:
项目内容描述分享此外包项目到 &&
要求描述:开发一个在安卓平台运行的可容纳手写、键盘、图片、音频、视频、涂鸦的富文本内容处理层控件:RichTextView。即一篇笔记内容需要容纳上述信息。
需要提供一个app demo方便交付时验证性能,demo提供两层,一层是手势轨迹层,手写层,透明的,主要提供跟踪和记录手写轨迹。
另外一层是内容处理层控件RichTextView,容纳和处理手写轨迹层前面输入的文字,插入的图片、音频、视频、涂鸦等内容。这一层是一个可以供其他程序使用的控件,提供各种输入输出的接口。
项目交付时需要提供这个demo的源代码,开发设计的文档,RichTextView控件输入输出接口的使用文档。
附件为基本需求和开发规范,具体需要详细沟通。
开发周期:时间待定
有谁竞标过Android C/C++
接包方在不确定是否付费竞标前,可通过此页左下角的“项目讨论区”与发包方探讨项目,同时发包方可通过接包方留言,进一步明确需求。
项目交流区(温馨提示:请选择软件项目交易网在线交易,谨防接包方直接提供联系方式或建议线下沟通,以免上当造成损失。)
会员类型 个人
信誉积分 0
交易金额 0.00
发布项目 1
完工项目 0
虚假项目 0
12月1日 QQ联系发布
客户留下电话,QQ,Email
发包方向系统提交了项目审批通过,项目发布项目结束
软件项目交易网 (C)
北京易软天地互联网信息服务有限公司版权所有[京ICP备号-1] 标识 京公网安备 号运行效果:
使用说明:
Gradlerepositories&{
&&&&jcenter()
dependencies&{
&&&&compile&'jp.wasabeef:richeditor-android:0.0.2@aar'
}粗体RichEditor&editor&=&(RichEditor)&findViewById(R.id.editor);
editor.setBold();斜体RichEditor&editor&=&(RichEditor)&findViewById(R.id.editor);
editor.setItalic();插入图片RichEditor&editor&=&(RichEditor)&findViewById(R.id.editor);
editor.insertImage(&/wasabeef/art/master/twitter.png&,&twitter&);监听文字改变RichEditor&editor&=&(RichEditor)&findViewById(R.id.editor);
editor.&setOnTextChangeListener(new&RichEditor.OnTextChangeListener()&{
&&@Override
&&public&void&onTextChange(String&text)&{
&&&&//&Do&omething
&&&&&Log.d(&RichEditor&,&&Preview&&&+&text);1663人阅读
android(29)
一: EditText文本转HTML
Android中有Html.toHtml()的方法,可以将颜色、加粗等转化为html标签,简化了我们标签的插入算法,但是也存在一些问题。
1. @XXX 和 $123456 的问题
@XXX是作为一个整体,创建了一张Bitmap然后使用ImageSpan插入到文本中的,这样就可以实现光标只能定位在@XXX之前或之后,要删除就整体删除。但是通过Html.toHtml()转化之后,会将这张图片转化为《img》标签,而我们只想转换后生成《a》标签(‘《》’实为’&&’),我的处理是这样的。
首先是在ImageSpan的source属性设置为@XXX,然后通过Html.toHtml()转化后为《img src=’@XXX’》。
第二步使用正则表达式匹配含有@的《img》标签,然后替换。
public String parseAtAndDoller(String htmlStr) {
String AT_STRING = "&a href=\"?at=%s\"&%s&/a&";
String DOLLER_STRING = "&a href=\"?doller=%s\"&%s&/a&";
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("ad哈哈" + "&img src=\"@hahaha\"&" + "asjjjasdfasdf
asdfasdf" + "&img src=\"$2222444\"&" + "asdfasdf" + "&img src=\"\"&" + "asdfasdfzxcv");
String regex = "&img src=\"[@|$](.+?)\"&";
while (true) {
Pattern pattern = pile(regex);
Matcher matcher = pattern.matcher(stringBuilder);
boolean isHas = matcher.find(0);
if (isHas) {
String tempString = stringBuilder.substring(matcher.start(), matcher.end());
if (tempString.charAt(10) == '@') {
String sourceStr = tempString.substring(10, tempString.length() - 2);
String formatString = String.format(AT_STRING, sourceStr, sourceStr);
stringBuilder.replace(matcher.start(), matcher.end(), formatString);
} else if (tempString.charAt(10) == '$') {
String sourceStr = tempString.substring(10, tempString.length() - 2);
String formatString = String.format(DOLLER_STRING, sourceStr, sourceStr);
stringBuilder.replace(matcher.start(), matcher.end(), formatString);
return stringBuilder.toString();
Html.toHtml()这个方法会将EditText里面的中文编码为Unicode十进制码,如“中国”会被转成中国这样生成的html网页,web浏览器能够正常识别,但是如果在非浏览器中显示的话就存在问题了,例如在TextView中显示,还是会显示中国。所以我在Html.toHtml()转码后,通过正则将转码之后的Unicode又转回来了。代码如下:
public String parseUnicodeToStr(String unicodeStr) {
String regExp = "&#\\d*;";
Matcher m = pile(regExp).matcher(unicodeStr);
StringBuffer sb = new StringBuffer();
while (m.find()) {
String s = m.group(0);
s = s.replaceAll("(&#)|;", "");
char c = (char) Integer.parseInt(s);
m.appendReplacement(sb, Character.toString(c));
m.appendTail(sb);
return sb.toString();
编号的处理。
编号插入的时机,由于ListItemSpan是将编号画出来的,所以生成html文本之前,需要在ListItemSpan的起点插入编号,但如果只是简单地插入“1.”这样的字符串,会出现问题。例如编号前后有颜色,有加粗,此时插入“1.”之后,通过Html.toHtml()转化,生成的html文本会将“1.”用颜色和加粗标签包裹起来,然而这并不是我想要的结果,所以我在转化之前,会将“1.”以Span的形式插入,颜色为灰色,字体为正常等,这样转化的html文本不会受到前后风格的影响。
生成的网页与编辑的文本,其中相差几个空行
这个具体原因我也不太清楚,按理来说Html.toHtml()方法会将’\n’转化为《/br》标签,但是我发现转化后任然有几个’\n’,所以我使用了replaceAll(“\n”,”“);方法去掉了多余的换行符。
二: 图片问题
1.只插入了一张图片,却发现上下出现了两张一样的
图片宽度过大的缘故,超过了EditText的宽度。设置小一点儿就可以了。
2.只插入了一张图片,显示也是一张,使用Html.toHtml()转化后,却出现多个相同《img》标签
图片插入时,使用的是ImageSpan,替换文本显示图片,那个别替换的文本还是有讲究的,如果被替换的文本包含一些特殊符号,例如’\’、’_’等,虽说替换后EditText上面只显示一张图片,但是经过Html.toHtml()转换后,有几个特殊符号,就会生成几个《img》标签。
3.图片插入过多,导致OOM
第一种就是限制插入的图片张数,每次插入前遍历总共有多少张图片(不包含@$)。第二种是大图片压缩,设定一个最大值,当所有的图片大小加起来大于最大值时就禁止插入。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:18604次
排名:千里之外
原创:40篇
(2)(2)(1)(2)(4)(2)(9)(7)(1)(7)(1)(2)(1)}

我要回帖

更多关于 js实现富文本编辑器 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信