android富文本的应用之草稿箱
2016-03-22 21:18
931 查看
富文本(也就是我们常常说到的图文混排)经常在我们做app应用的时候要求做到这个功能。
比如说,
做一个论坛的app时候我们需要发帖,而发帖就要求我们做到图片和文字一起展示,发送到服务器中去,
做某些记事本的app的时候,我们也要对做的富文本进行操作,把富文本存储到本地,以便于我们查看和重现编辑
我做了一个app,先把平常操作的图贴上,主要功能是编辑富文本,和富文本的本地存储,及富文本的二次编辑。
- app的相关截图
1,这是app展示富文本信息的主界面
![](https://oscdn.geek-share.com/Uploads/Images/Content/201908/09/602ffe001f10722013c4c2089a93876a)
2,富文本的编辑页面,支持插入图片和文字的混排
![](https://oscdn.geek-share.com/Uploads/Images/Content/201908/09/005c3cda1452a012534f64b756d226e6)
3,富文本刚开始的编辑页面
![](https://oscdn.geek-share.com/Uploads/Images/Content/201908/09/c0db232680719be238584ceda7183ae6)
4,富文本的本地化存储
![](https://oscdn.geek-share.com/Uploads/Images/Content/201908/09/8db68e719f8946ad355ff1ef59a6c7e7)
贴上一些核心代码
找到图片的uri,通过uri插入到富文本中
从数据库中获取到存储的关于富文本的信息,展示在富文本中
废话不多说直接贴上代码的链接github的地址,欢迎的话加星哦
比如说,
做一个论坛的app时候我们需要发帖,而发帖就要求我们做到图片和文字一起展示,发送到服务器中去,
做某些记事本的app的时候,我们也要对做的富文本进行操作,把富文本存储到本地,以便于我们查看和重现编辑
我做了一个app,先把平常操作的图贴上,主要功能是编辑富文本,和富文本的本地存储,及富文本的二次编辑。
- app的相关截图
1,这是app展示富文本信息的主界面
2,富文本的编辑页面,支持插入图片和文字的混排
3,富文本刚开始的编辑页面
4,富文本的本地化存储
贴上一些核心代码
找到图片的uri,通过uri插入到富文本中
final Uri uri = data.getData(); final String url = getRealPathFromURI(uri); Editable eb = etContent.getEditableText(); LogUtils.d("获得的文件绝对路径是"+url); // 获得光标所在位置 int startPosition = etContent.getSelectionStart(); eb.insert( startPosition, Html.fromHtml("<br/><img src='" + url + "'/><br/>", imageGetter, null)); /** * 图片插入之后,scrillView下滑至最底部 */ mHandler.post(new Runnable(){ @Override public void run() { // TODO Auto-generated method stub mScrollView.fullScroll(ScrollView.FOCUS_DOWN); } });
从数据库中获取到存储的关于富文本的信息,展示在富文本中
mDraftInfo = (DraftInfo) getIntent().getSerializableExtra("draft_bean"); /** * 获得标题,并且把标题显示在标题栏 */ etTitle.setText(mDraftInfo.title); String content = mDraftInfo.text; LogUtils.d("获得的text信息"+content); String[] mContent = content.split("\n"); int startPosition; /** * 获得html中的图片的URI,存储在容器中mPicUri */ int startIndex; int endIndex; List<String> mPicUri = new ArrayList<String>(); String [] mContentEb = mDraftInfo.html.split("\n"); for (String string : mContentEb) { if(string.contains("src=")){ LogUtils.d(string); startIndex = string.indexOf("src=")+5; endIndex = string.lastIndexOf("jpg")+3; String uri = string.substring(startIndex, endIndex); LogUtils.d("11111获得的图片路径"+uri); mPicUri.add(uri); } } int i = 0; /** * 获得草稿的图片和文字信息,并把它展示出来 */ for (String string : mContent) { //LogUtils.d(string); if(string.contains("")){ /** * 如果是图片 * 1,先判断其来自与照相机还是图库 * 2,图库用ImageGetter显示出来 * 3,照片用ImageGetter1显示出来 */ startPosition = etContent.getSelectionStart(); String mPicPath = mPicUri.get(i); startPosition = etContent.getSelectionStart(); if(mPicPath.contains("content")){ eb.insert( startPosition, Html.fromHtml("<br/><img src=" + mPicPath + "><br/>", imageGetter, null)); }else{ eb.insert( startPosition, Html.fromHtml("<br/><img src=" + mPicPath + "><br/>", imageGetter, null)); } i++; /** * 碰到图片下面直接有文字的情况 */ if(!string.equals("")){ String contentPic = string.substring(string.indexOf("")+1); startPosition = etContent.getSelectionStart(); eb.insert(startPosition, contentPic); } }else{ /** * 展示文字 */ startPosition = etContent.getSelectionStart(); eb.insert(startPosition, string); } } }
废话不多说直接贴上代码的链接github的地址,欢迎的话加星哦
相关文章推荐
- 基于jquery实现可定制的web在线富文本编辑器附源码下载
- 19款Javascript富文本网页编辑器
- CKEditor 整合CKFinder实现文件上传及富文本操作
- 属性字符串NSAttributedString简易教程
- NSMutableAttributedString留个记录
- kindeditor上传视频
- 通过RTLabel、RCLabel、FTCoreText及webView结合SDWebImage等4种方式实现左滑或下拉中cell中图文混排使用场景方案
- IOS CoreText -- 基本用法
- xhEditor富文本编辑器的使用说明
- cocos2dx-3.x: lua 富文本,文本中插入颜色文本处理
- NSAttributedString的使用
- 富文本框的使用kindeditor
- Bootstrap wysiwyg,将富文本数据保存到mysql
- iOS6之后 NSAttributedString 的福利
- Qt富文本处理
- 在ios中集成CKEditor实现富文本编辑
- 仿微信朋友圈,点击评论,生成自定义超链接,并处理
- Android(Java):在textview中显示富文本
- Android实战技巧:用TextView实现Rich Text---在同一个TextView中设置不同的字体风格
- 富文本NSAttributedString与NSMutableAttributedString