一个富文本应该能保存各种各样的效果,之前已经说过了用HTML.toHtml,新的问题又来了,fromHtml的时候字体大小效果会消失,

这不知道算不算是个BUG吧。。因为官方的代码里就是没有处理

private static void startFont(SpannableStringBuilder text,Attributes attributes) {String color = attributes.getValue("", "color");String face = attributes.getValue("", "face");text.setSpan(new Font(color, face), len, len, Spannable.SPAN_MARK_MARK);}

HTML里面只处理了color 和 face, 而且从1.5->4.0的代码里都是这样。。。。

高手呢,很容易,自己写个解析器,把详解析的解析了,但是我是懒人。。只能用现有的了,

我的做法是从网站上把 HTML类下载下来,然后放到自己的项目里用,中间会涉及到一些内部类,也需要手动下载手动引用,

而且会报一些警告,无视就好

下面是我修改完的代码

private static void startFont(SpannableStringBuilder text,Attributes attributes) {String color = attributes.getValue("", "color");String face = attributes.getValue("", "face");//change by rockmanString size = attributes.getValue("", "size");int len = text.length();text.setSpan(new Font(color, face, size), len, len, Spannable.SPAN_MARK_MARK);}

 private static void endFont(SpannableStringBuilder text) {int len = text.length();Object obj = getLast(text, Font.class);int where = text.getSpanStart(obj);text.removeSpan(obj);if (where != len) {Font f = (Font) obj;if (!TextUtils.isEmpty(f.mColor)) {if (f.mColor.startsWith("@")) {Resources res = Resources.getSystem();String name = f.mColor.substring(1);int colorRes = res.getIdentifier(name, "color", "android");if (colorRes != 0) {ColorStateList colors = res.getColorStateList(colorRes);text.setSpan(new TextAppearanceSpan(null, 0, 0, colors, null),where, len,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);}} else {int c = getHtmlColor(f.mColor);if (c != -1) {text.setSpan(new ForegroundColorSpan(c | 0xFF000000),where, len,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);}}}if (f.mFace != null) {text.setSpan(new TypefaceSpan(f.mFace), where, len,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);}//add by rockmanif (!TextUtils.isEmpty(f.mSize)) {int s = Integer.parseInt(f.mSize)*6;text.setSpan(new AbsoluteSizeSpan(s),where, len,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);}}}

还要处理FONT的闭合

官方代码的处理是用startXXX  endXXX做处理, 所以我们也可以处理自定义标签,

开源的系统就是好。。不然错了都不知道怎么办。。。 PS:其实我也是在STACKOVERFLOW里找出来的 = =!

转载于:https://www.cnblogs.com/rockman12352/archive/2013/01/05/2846658.html

Android实现富文本时遇到的一些问题(2)字体效果的保存相关推荐

  1. Ueditor富文本添加视频内容,视频不显示以及编辑富文本时,视频不显示解决方案

    Ueditor富文本添加视频内容,视频不显示以及编辑富文本时,视频不显示解决方案 参考文章: (1)Ueditor富文本添加视频内容,视频不显示以及编辑富文本时,视频不显示解决方案 (2)https: ...

  2. android端富文本编辑器HRichEditor

    HRichEditor android端富文本编辑器 项目地址:https://github.com/huangdali/HRichEditor 使用方法见DEMO 所有功能已经实现,期待你的star ...

  3. Android Span富文本设置点击事件/超链接 - URLSpan/ClickableSpan

    ######为文字实现很丰富的特殊效果,下面来实现 点击事件/超链接 操作 so... 直接上效果: ##使用前提条件: textView.movementMethod = LinkMovementM ...

  4. Android的富文本

    1:富文本的相关内容 富文本设置 它是用来标识在 Span 范围内的文本前后输入新的字符时是否把它们也应用这个效果.分别有 Spanned.SPAN_EXCLUSIVE_EXCLUSIVE(前后都不包 ...

  5. android:获取富文本图片和使用Jsoup抓取腾讯新闻网页数据

    先看效果: 获取富文本中的图片 抓取腾讯新闻中的图片 首先引入要使用的jar包 compile 'jp.wasabeef:glide-transformations:2.0.2'compile 'or ...

  6. 如何展示富文本_自助建站如何做出个性化效果?

    自助建站是当前很流行的建站方式,非常适合什么技术也不懂的小白,只需选一个自助建站模板,再稍加编辑就能快速生成自己的网站.很多人会以为,自助建站受限制太多,无法做出个性化定制效果,然而事实真是这样吗?其 ...

  7. 解决ckeditor富文本在layui 弹框中大小字体等下拉不显示

    css <div class="layui-input-inline" style="width:1100px;"><div class=&q ...

  8. android富文本图片自适应,Android Span富文本图文混排 - ImageSpan(图文垂直居中)...

    ###为文字实现很丰富的特殊效果,当然少不了图文混排 so... 直接上效果(有直接使用和自定义垂直居中效果) ##1 ImageSpan: ImageSpan(context, resourceId ...

  9. android h5富文本编辑器,H5富文本编辑器的详细介绍

    使用H5的全局属性contenteditable可以让DOM元素及其子元素变的可编辑 样式代码 html, body { overflow: hidden; width: 100%; height: ...

最新文章

  1. php中query()作用,query()方法
  2. MFC第一课 控件使用技巧
  3. 管道流 pipedinputstream
  4. laravel 框架基础 学习整理
  5. js encodeurl java接收_在JS中encodeURI(url)怎样才能不出现乱码?
  6. springboot启动报错:Error starting ApplicationContext. To display the conditions report re-run your appl
  7. 动手设计 CPU(一)—— 各类元件功能表
  8. mitmproxy工具使用小红书数据抓取
  9. 摄影系列:李涛ps视频教程笔记
  10. ESP32-WiFi功能的理解
  11. 《人工智能与模式识别》
  12. 《世界尽头与冷酷仙境》后感
  13. 【分析】Ceph数据一致性检查 - Scrub的执行
  14. 2021级新生个人训练赛第37场
  15. jupyter添加快捷方式
  16. 职场修炼圣经-和繁重的工作一起修行
  17. TL-R473P-AC【搭配面板式AP组网设置方法】
  18. 邻接矩阵的定义和例子
  19. Python 竟然不是最赚钱的编程语言?!
  20. 从零开始学习CANoe(十)—— 信号发生器(Signal Generator)

热门文章

  1. 使用SQL DTS功能实现从DB/2向SQL Server传输数据
  2. VB 金额大小写转换(两种方法)
  3. 【正一专栏】轮回-从坚信去年骑士会逆转到今年坚定看好勇士横扫
  4. 机器学习笔记(十)降维和度量学习
  5. GAN背后的理论依据,以及为什么只使用GAN网络容易产生
  6. python脚本中执行另一个脚本_如何用python调用另一个python脚本?
  7. 观察多个线程同时运行|| 查看进程线程的方法——未完待续
  8. Python 技术篇-用flask服务实现mac本地文件上传至windows服务器指定文件夹下实例演示
  9. STM32休眠后不能烧录程序
  10. 模拟电路技术之基础知识(十)