首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

fromHtml方法在API级别28上不能正确地格式化html文本。

fromHtml方法是Android中的一个静态方法,用于将HTML格式的文本转换为Spanned对象。在API级别28及以下的版本中,该方法可以正确地格式化HTML文本。但是,在API级别28及以上的版本中,该方法被废弃,并且在处理某些HTML标签时可能会出现格式化错误的问题。

为了解决这个问题,可以使用Html.fromHtml(String source, int flags)方法来替代fromHtml方法。该方法需要传入一个flags参数,用于指定解析HTML文本时的行为。常用的flags参数值包括Html.FROM_HTML_MODE_LEGACY和Html.FROM_HTML_MODE_COMPACT。

  • Html.FROM_HTML_MODE_LEGACY:在API级别24及以上的版本中,该参数可以确保HTML文本的格式化与之前的行为保持一致。
  • Html.FROM_HTML_MODE_COMPACT:在API级别29及以上的版本中,该参数可以确保HTML文本的格式化与之前的行为保持一致,并且会尽可能地去除不必要的空格。

以下是一个示例代码,展示了如何使用Html.fromHtml(String source, int flags)方法来正确地格式化HTML文本:

代码语言:txt
复制
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
    CharSequence formattedText = Html.fromHtml(htmlText, Html.FROM_HTML_MODE_COMPACT);
} else {
    CharSequence formattedText = Html.fromHtml(htmlText);
}

在使用fromHtml方法时,需要注意以下几点:

  1. 在API级别28及以上的版本中,建议使用Html.fromHtml(String source, int flags)方法,并根据实际需求选择合适的flags参数值。
  2. 在API级别28及以下的版本中,可以继续使用fromHtml方法,但需要注意可能出现的格式化错误问题。
  3. 在处理HTML文本时,建议使用Spanned对象来保存格式化后的文本,以便在TextView等控件中正确地显示。

腾讯云相关产品中,与HTML文本处理相关的产品包括云函数(SCF)和内容分发网络(CDN):

  • 云函数(SCF):云函数是无服务器计算服务,可以通过编写函数代码来处理HTML文本的格式化等操作。详情请参考云函数产品介绍
  • 内容分发网络(CDN):CDN可以加速网站的访问速度,并提供HTML文本的缓存和分发服务。详情请参考内容分发网络产品介绍

以上是关于fromHtml方法在API级别28上不能正确地格式化HTML文本的解答。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

用TextView实现富文本展示,点击断句和语音播报

Html.fromHtml() fromHtml重载两个方法,分别是: 1、Spanned android.text.Html.fromHtml(String source) //输入的参数为(html...格式的文本) 目前android不支持全部的html的标签,目前只支持与文本显示和段落等标签,对于图片和其他的多媒体,还有一些自定义标签不能识别。...,我们完全可以使用Html.fromHtml方法,传入html代码,最后返回Spanned 对象,使用setText方法既可实现用TextView展示html类型的富文本。...图片处理 一部分也说了,使用Html.fromHtml( )方法展示富文本的时候,某些自定义的标签和图片识别不了,也就是加载不出来。而我们的项目中没有自定义的特殊标签,最关键的就是图片的加载!...3、存在的问题及优化 这样存在一个问题,我们使用fromHtml加载html文本时,图片是同步加载,而加载网络图片和加载html是异步的,也就是说:加载到图片之前,其他文本已经显示到界面上,所以需要我们再次设置

1.1K10

Android中Textview文字设置不同颜色、下划线、加粗、超链接

项目中会遇到一行文字,部分需要不同的文字颜色、下划线以及超链接来展示,下面介绍两种方式实现: 1、SpannableString来实现 1)简介 对于给Textview设置不同颜色,就不得不提SpannableString...2)具体使用 给文本设置不同的样式是通过setSpan()方法来实现的,其中的具体样式根据参数来定义。...static Spanned fromHtml(String source) 从Html字符串中返回可显示的样式文本。...static Spanned fromHtml(String source, Html.ImageGetter imageGetter, Html.TagHandler tagHandler) 从Html...(str)); 设置下划线如下 mTextView.setText(Html.fromHtml("已有账号,去"+""+"登陆"+"")); PS:如果不在HTML标签最前面加入其他HTML

4.9K21
  • 安卓 topic-字符串资源 string-resource

    尽管历史上被称作“数量字符串”(并且 API 中也仍然这样叫),但数量字符串 只应用于表示复数。...方法会去除字符串中的所有样式信息。 这个问题的解决方法是编写带转义实体的 HTML 标记,完成格式设置后,这些实体可通过 fromHtml(String) 恢复。...然后照常设置字符串格式,但还要调用 fromHtml(String) 以将 HTML 文本转换成带样式文本: Resources res = getResources(); String text =...(text); 由于 fromHtml(String) 方法将设置所有 HTML 实体的格式,因此务必要使用 htmlEncode(String) 对您用于带格式文本的字符串中任何可能的 HTML...您可以创建类似方法来进行其他类型的文本样式设置。

    91610

    TextView自定义下划线、点击弹框

    立马会想到使用TextView的fromHtml方法,给添加笔记的文本手动加标签,或者使用SpanString类的相关方法设置标签。 但是!...经过反复测试,无论使用何种下划线标签或者SpanString设置下划线,画出的下划线颜色始终和文本内容颜色一样,还不能随便定义颜色。更何况:我们需要在下划线最后加图标,并且能够点击。...要实现以上需求,应该从这几个方面入手: 文本展示,普通文本调用TextView的setText方法既可,如果是富文本,就使用TextView的fromHtml方法,至于图片如何展示,我在上一篇文章用TextView...然后就是onDraw方法中对计算出的行进行逐行绘制,最后一行的结束位置绘制笔记图标(小圆圈)。...03 — 文本显示 这里就不再重复累赘了,文本展示很简单: 调用setText或fromHtml方法既可。 04 — 颜色等属性设置 ?

    1.5K30

    【Android 应用开发】Android UI 设计之 TextView EditText 组件属性方法最详细解析

    绘制图像相关XML属性 绘图设置 : XML属性可以指定在TextView文本的 左, 右, , 下, 开始, 结尾 处设置图片, 还可以设置文本 与图片之间的间距; -- 文本框四周绘制图片XML...属性 :  文本框左边绘制指定图像 :android:drawableLeft; 文本框右边绘制指定图像 :android:drawableRight; 文本框上边绘制指定图像 :android...:drawableTop; 文本框下边绘制指定图像 : android:drawableBottom; -- 设置图片方法 : setCompoundDrawablesWithIntrinsicBounds...显示的文本为密码 设置文本框是一个密码框 : 如果要设置显示的文本是密码的话, 那么显示出来的就是 "." , 不能显示具体的内容; -- XML属性 :android:password, 如果是密码的话...显示HTML效果页面 使用Html.fromHtml("")方法, 参数是html界面内容, 可以使用html标签设置文本效果; 例如可以使用Html.fromHtml("<font size='20'

    1.7K30

    TextView

    文本控件 显示富文本(URL、不同大小、字体、颜色的文本TextView中预定义了一些类似HTML标签(不区分大小写),通过这些标签,我们可以使TextView控件显示不同的颜色、大小、字体的文字...不能将带有标签的字符串直接使用TextView.setText()的方法进行设置,需要使用Html.fromHtml()将带有标签的字符串转换成CharSequence对象,然后再使用TextView.setText...注意 调用setText方法设置文本完成后,还需要调用 setMovementMethod方法设置一个MovementMethod对象。...解析src属性值的工作需要在ImageGetter对象的getDrawable方法中完成。 ImageGetter是个接口。使用过Html.fromHtml方法的如下重载形式会比较熟悉它。...这种方法需要将文本转换成为一个SpannableString或者SpannableBuilder对象,然后SpannableString或者SpannableBuilder对象中使用setSpan方法将需要设置样式的文本转换成相应的

    1.6K20

    Loguru:更为优雅、简洁的Python 日志管理模块

    虽然logging 库采用的是模块化设计,可以设置不同的 handler 来进行组合,但是配置较为繁琐。同时多线程或多进程的场景下,若不进行特殊处理还会导致日志记录会出现异常。...IDE 或终端运行时会发现,loguru 输出的不同级别信息时,带上了不同的颜色,使得结果更加直观,其中也包含了时间、级别、模块名、行号以及日志信息。...format (str or callable, optional) :格式化模块,发送到接收器之前,使用模板对记录的消息进行格式化。...('This is warn information') filter 配置日志过滤规则 如下,我们通过实现自定义方法error_only,判断日志级别,当日志级别为ERROR,返回TRUE,我们add...information') 2021-3-28.log 日志中,我们可以看到仅记录了ERROR级别日志。

    14.5K32

    Android中TextView实现分段显示不同颜色的字符串

    关于TextView TextView是Android开发中最最常见的控件之一,API记录的属性有很多,但实际开发中,也遇到很多有趣的需求,值得去尝试,所以记录下来,既可以给大家提供参考,同时自己需要时候也方便查找...一般有三种实现方式 直接根据不同的需要分段字符串,然后分别使用多个TextView来显示 使用spannablestring 使用Html 下面分别来简单介绍下三种方法 多个TextVew 这种方式简单粗暴...,颜色样式控制灵活 如果需要显示的文本需要分多个段的话,那就需要很多个TextView,而且布局不好控制 实现方式简单,就不写例子了 使用SpannableString 想必用过的人都知道,比较好的一点是.../然后直接setText() TextView tvContent = (TextView) view.findViewById(R.id.tvContent); tvContent.setText(Html.fromHtml...(content)); 以上就是TextView分段显示不同样式字符串的方法,希望对大家有用 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流

    3.8K30

    Java 编程要点之 IO 流详解

    这就是为什么 CopyBytes 可以确保每个流变量调用前都包含了一个对象的引用。 何时不使用字节流 CopyBytes 似乎是一个正常的程序,但它实际上代表了一种低级别的 I/O,你应该避免。...除字符和行之外,有许多方法来构造文本的输入和输出。欲了解更多信息,请参阅 Scanning 和 Formatting。...扫描(Scanning)和格式化(Formatting) 扫描和格式化允许程序读取和写入格式化文本。 I/O 编程通常涉及对人类喜欢的整齐的格式化数据进行转换。...因此,一个美国的区域设置,Scanner 能正确地读出字符串“32,767”作为一个整数值。 这里要注意的是语言环境,因为千位分隔符和小数点符号是特定于语言环境。...此外,PrintStream 和 PrintWriter 的执行同一套方法,将内部数据转换成格式化输出。提供了两个级别的格式: print 和 println 一个标准的方式里面格式化独立的值 。

    62320

    Log4j2-Log4j 2介绍及使用

    支持自定义日志级别。自定义日志级别可以代码或配置中定义。 支持Lambda表达式。运行在Java 8的客户端代码可以使用Lambda表达式来实现仅在对应的日志级别启用时延迟构造日志消息。...这导致了Logback Encoder中讨论的问题。Log4j 2用更简单的方法,Layout总是返回一个字节数组。...---- 日志级别 ? 表格中,垂直列为LogEvent的级别,水平列为从合适的LoggerConfig中分配到的级别。...第三个字段是日志声明的级别。 第四个字段是与日志请求相关联的Logger名称。 “-”之后的文本是日志的消息内容。...Log4j带有很多不同的Layout以支持诸如JSON、XML、HTML和Syslog ---- 转到Log4j 2 API 大多数情况下,从Log4j 1.x API转换到Log4j 2相当简单。

    73120

    02.HTML元素属性标题段落文本格式化链接

    02.HTML元素/属性/标题/段落 /文本格式化/链接 HTML 元素 ---- HTML 文档由 HTML 元素定义。...---- 不要忘记结束标签 即使您忘记了使用结束标签,大多数浏览器也会正确地显示 HTML: ? 以上实例浏览器中也能正常显示,因为关闭标签是可选的。 但不要依赖这种做法。... XHTML、XML 以及未来版本的 HTML 中,所有元素都必须被关闭。 开始标签中添加斜杠,比如 ,是关闭空元素的正确方法HTML、XHTML 和 XML 都接受这种方式。...标签 描述 定义一个段落 插入单个折行(换行) ---- HTML 文本格式化 ? ?...---- HTML 格式化标签 HTML 使用标签 ("bold") 与 ("italic") 对输出的文本进行格式, 如:粗体 or 斜体 这些HTML标签被称为格式化标签(请查看底部完整标签参考手册

    4K30

    【合合TextIn】智能文档处理系列—电子文档解析技术全格式解析

    RTF富文本格式(Rich Text Format),允许文本格式化和包含图像等对象,确保文档可以不同的文本处理软件之间传输而保持格式不变。...DOC文件由多个部分组成,包括文本内容、格式化信息、图像和其他媒体文件、以及文档的元数据。这些信息被组织不同的数据流和结构中,例如:文本流:存储实际的文本内容。...解析器需要能够理解Markdown语法的各种规则,如标题的级别、列表的创建、代码块的表示方法等。7.2.2 内嵌HTML处理Markdown允许在其文本中直接使用HTML代码。...解析器处理Markdown文本时,也需要能够处理和转换这些HTML代码,而不破坏其原有意图。...它提供了简单的方法来导航、搜索和修改DOM树。10.3.2 jsoupjsoup:一个用于Java的HTML解析器,其API设计用于提取和操作数据,使用DOM和CSS选择器查询。

    39110

    log4j 详解

    它们之间可理解为父子关系,父级别会限制子级别的输出内容, Layout Log4j 自带的 layout 有: 复制 org.apache.log4j.HTMLLayout(以HTML表格形式布局),...第二种方法通过记录器的名称获得。记录器名称是可以传递任何字符串,通常是类或包的名称 ,用于区分不同类的输出,可以 Layout 中通过 %c来获取。...) 这种方法打印使用 Level.ERROR 消息级别 3 public void fatal(Object message); 这种方法打印使用 Level.FATAL 消息级别 4 public void...消息级别 6 public void trace(Object message); 这种方法打印使用Level.TRACE消息级别 日志格式化 PatternLayout 最为常用的便是 org.apache.log4j.PatternLayout...设置的方法 % 与参数符号间添加数字, 例如 %20p, %-20p等。正数表示右对齐,负数表示左对齐,数字表示最小宽度,不足时用空格补齐。

    59520

    Android控件TextView实现静态图与动态GIF图文混排

    最近做项目功能时,需要在TextView中展示图文,刚开始做的时候以为很简单,只需要用个ImageView跟TextView来展示就行了,可是发现这样做,不能实现我们需要的效果,这就需要涉及到富文本TextView...){ Spanned htmlStr = Html.fromHtml(html); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB...tv.setText(style); } } } 上面代码图片展示是通过ImageSpan来实现的,但默认的图片展示的gif图片是静态取第一帧图片,我们可以获取图片时候使用...但是细节还是有不少区别的。而且性能上更加优化。...把Glide引入到我们项目中,然后创建UrlDrawable 和 GlideImageGetter 代码可以参考:底部公众号回复"富文本"即可获取 方法调用: String content

    2.1K30

    Java编程要点之 IO 流详解

    除字符和行之外,有许多方法来构造文本的输入和输出。欲了解更多信息,请参阅 Scanning 和 Formatting。...扫描(Scanning)和格式化(Formatting) 扫描和格式化允许程序读取和写入格式化文本。 I/O 编程通常涉及对人类喜欢的整齐的格式化数据进行转换。...因此,一个美国的区域设置,Scanner 能正确地读出字符串“32,767”作为一个整数值。 这里要注意的是语言环境,因为千位分隔符和小数点符号是特定于语言环境。...此外,PrintStream 和 PrintWriter 的执行同一套方法,将内部数据转换成格式化输出。提供了两个级别的格式: print 和 println 一个标准的方式里面格式化独立的值 。...每个记录包括涉及发票的项目,如下表中三个值: 记录中顺序 数据类型 数据描述 输出方法 输入方法 示例值 1 double Item price DataOutputStream.writeDouble

    56410

    JSR310新日期API(三)-日期时间格式化与解析

    对于非线程安全这个问题也有解决方案: 方案一:把SimpleDateFormat实例封闭方法中,也就是调用的时候才创建,这样虽然导致了资源浪费,但是可以避免并发问题。...DateTimeFormatter java.time.format.DateTimeFormatter设计是一个不可变类,也就是它是线程安全的,DateTimeFormatter的静态方法和实例方法只要返回...一般情况下,构造DateTimeFormatter实例可以使用它提供的静态工厂方法,这些静态方法如果不能满足需求,可以考虑使用DateTimeFormatterBuilder定制化建造DateTimeFormatter...分01秒 2019年01月05日 16时28分01秒 字符串反解析为日期时间类型的(parse)方法并不存在于DateTimeFormatter类中,parse方法存在于日期时间类自身之中,这样的设计才是合理的...其实JSR-310中的日期时间API格式化和解析和旧有的日期时间API格式化和解析从本质是没有区别的,都是字符串解析和转换的游戏,但是个人是推荐使用JSR-310中的日期时间API格式化和解析,

    1.5K20

    logging模块小结

    日志是一种可以追踪某些软件运行时所发生事件的方法。   日志的作用是通过记录和分析日志可以了解一个系统或软件程序运行情况是否正常,也可以应用程序出现故障时快速定位问题。...CRITICAL 当发生严重错误,导致应用程序不能继续运行时记录的信息   python中,logging模块提供的日志记录函数所使用的日志器默认设置的日志级别是WARNING,因此只有WARNING...logger对象调用setLevel()配置日志等级 第三,关于格式化日志输出   logging模块中,默认的日志输出格式logging.basicConfig方法中设置的如下:   ...默认格式: 日志级别:日志器名称:日志内容   对应BASIC_FORMAT: "%(levelname)s:%(name)s:%(message)s"   昨天课上的时候,没有讲关于格式化的字符串有哪些...,则我们有两种方法去进行设置日志的输出格式: 使用logging.basicConfig进行格式化输出:   2.

    23020

    Spark action 操作列表

    该函数应该具有可交换与可结合的性质, 以便于能够正确地进行并行计算. collect() driver program 上将数据集中的元素作为一个数组返回....Hadoop 支持的文件系统的一个指定路径, 将数据集中的元素写为一个 Hadoop SequenceFile.... Scala 中, 同样适用于能够被隐式转换成 Writable 的类型 (Spark 包含了对于 Int, Double, String 等基本类型的转换). saveAsObjectFile(path...)(Java and Scala) 使用 Java 序列化将数据集中的元素简单写为格式化数据, 可以通过 SparkContext.objectFile() 进行加载. countByKey() 仅适用于...可以看出 action 的所有操作都是针对数据集中 “元素” (element) 级别的动作, action 的主要内容是 存储 和 计算.

    56430
    领券