当前位置:首页 > 天道酬勤 > 正文内容

android 富文本(android富文本混排oom)

张世龙2021年12月21日 21:29天道酬勤1380

显示富文本主要有两种方法。 一种方法是使用SpannableString类,另一种方法是直接将富文本写入HTML格式。

SpannableString

SpannableString是内置于Android的富文本专用类,几乎涵盖了所有可能的富文本显示,包括字体、颜色、图像、点击事件等

将Hello World的前三个字符设置为红色,背景设置为蓝色

spannablestringtextspanned1=Newspannablestring (Hello world );

文本跨度1.setspan (newforegroundcolorspan )颜色.红色)、

0,3,螺旋线.螺旋线_螺旋线_螺旋线;

文本跨度1.setspan (Newbackgroundcolorspan )颜色.蓝色)、

0,3,螺旋线.螺旋线_螺旋线_螺旋线;

文本1 .文本(文本生成1 );

将Hello World的前三个字符字体设置为斜体

spannablestringtextspanned2=Newspannablestring (Hello world );

文本跨度2.setspan (新样式跨度)类型面. Italic )、

0,3,螺旋线.螺旋线_螺旋线_螺旋线;

文本2 .文本(文本生成2 );

将Hello World的前三个字符设置为有下划线

spannablestringtextspanned3=Newspannablestring (Hello world );

文本跨度3.setspan (新跨度)、

0,3,螺旋线.螺旋线_螺旋线_螺旋线;

文本3 .文本(文本生成3 );

将Hello World的前三个字符设置为单击事件

spannablestringbuildertextspanned4=newspannablestringbuilder (' hello world ' );

clickablespanclickablespan=newclickablespan (

@Override

公共语音连接器(视图) {

toast.maketext (主活动. this,' Hello World ',Toast.LENGTH_SHORT ).show );

}

(;

文本跨度4.setspan (点击式跨度,

0,3,螺旋线.螺旋线_螺旋线_螺旋线;

//注意:此时必须加入此句。 否则,点击事件不会生效

文本4.setmovementmethod (链接移动mentmethod.getinstance );

文本4 .文本(文本生成4; setSpan () )

voidsetspan (对象开始、结束、内标志)参数

说明

假设

风格

开始

以样式开头的字符索引

结束

样式结束的字符索引

标志

设置新的插入字符

标志:

取值

说明

生成.间隔_排除_排除_排除

不包括在前后

生成.间隔_排除_排除

不包括在前面,包括在后面

生成.间隔_排除_排除_排除

包含在前面,不包含在后面

生成.间隔_包含_不包含

前后都包括

这个flags可能有人不知道,它表示这个样式是否影响在这个字符串之前或之后插入的其他字符串

spannablestringbuildertextspannedbuilder1=newspannablestringbuilder (;

spannablestringtextspanned 11=newspannablestring (' hello );

文本跨度11.setspan (NewbackGroundColorspan )颜色.蓝色),0,文本跨度11 .长度),跨度. Exclus iiii

spannablestringtextspanned 12=newspannablestring (' world );

文本1 .文本(文本生成程序1 .应用程序)文本生成程序11 ) .应用程序文本生成程序12 );

spannablestringbuildertextspannedbuilder2=newspannablestringbuilder (;

spannablestringtextspanned 21=newspannablestring (' hello );

文本跨度21.setspan (NewbackGroundColorspan )颜色.蓝色),0,文本跨度21 .长度),跨度. Exclus iiii

spannablestringtextspanned 22=newspannablestring (' world );

文本2 .文本(文本生成程序2 .应用程序)文本生成程序21 ) .应用程序文本生成程序22 );

spannablestringbuildertextspannedbuilder3=newspannablestringbuilder (;

spannablestringtextspanned 31=newspannablestring (' hello );

文本跨度31.setspan (NewbackGroundColorspan )颜色.蓝色),0,文本跨度21 .长度),跨度. Exclus iiii

spannablestringtextspanned 32=newspannablestring (' world );

文本跨度32.setspan (Newbackgroundcolorspan )颜色绿色),0,3,跨度_排除_不连续;

文本3 .文本(文本生成程序3 .应用程序31 ) .应用程序32 ); 在文本1中,“Hello”的标志为SPAN_EXCLUSIVE_EXCLUSIVE,表示之后插入的“World”正常且没有背景。

在文本2中,“Hello”的标志为SPAN_EXCLUSIVE_INCLUSIVE,之后插入的“World”的背景为蓝色。 必须注意的是文本3。 此“Hello”与文本2相同,但“World”的某些字符设置为绿色。 这部分文字明显呈绿色。 这表示即使设置了SPAN_EXCLUSIVE_INCLUSIVE属性,如果后面的字符串设置了相同的样式,则仍将涵盖flags。

HTML

接下来将介绍HTML的使用方法。 实际上,HTML使用起来比SpannableString简单。 根据平时写HTML的习惯,只需对要显示的富文本添加各种标签,就可以在TextView上显示。 让我们看看示例:

字符串htmltext1=' B hello世界/B ';

文本1 .设置文本(从html.html ) htmltext1);

string htmltext2='字体颜色=' # ff 0000 '帮助世界/字体';

文本2 .设置文本(从html.html ) htmltext2);

string htmltext3=' ia href=' https://Gavin Li 369.github.io/'我的博客/a/i ';

文本3.setmovementmethod (链接移动mentmethod.getinstance );

文本3 .设置文本(从html.html ) htmltext3); TextView支持的HTML标记

标签

说明

字体

字体和颜色设置

大小字体

苏马尔

小号字体

I

斜体的

b

粗体字

t

等宽字体

br

换行(行与行之间没有空行) ) ) ) ) ) ) ) )。

p

换行(行与行之间有空行) ) ) ) )。

a

链接

img

形象

扫描二维码推送至手机访问。

版权声明:本文由花开半夏のブログ发布,如需转载请注明出处。

本文链接:https://www.zhangshilong.cn/work/26590.html

分享给朋友:

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。