一种智能终端中富文本显示的方法和系统技术方案

技术编号:11185595 阅读:58 留言:0更新日期:2015-03-25 14:13
本发明专利技术公开了一种智能终端中富文本显示的方法和系统。该方法包括:将输入的源字符串加载到缓存区中;对缓存区中的源字符串进行遍历,对遍历到的每个字符生成对应的绘制结构体,并将绘制结构体依次保存到数组中;其中,一个字符的绘制结构体包括:字符和该字符的绘制属性信息;依次读取所述数组中的绘制结构体,根据绘制结构体中的绘制属性信息绘制对应的字符。本发明专利技术提供的技术方案能够解决现有的IOS系统中的富文本显示方法存在不能针对某个字符进行属性加工的问题。

【技术实现步骤摘要】

本专利技术涉及计算机智能终端
,特别是涉及一种智能终端中富文本显示的方法和系统
技术介绍
随着智能终端的不断发展不断创新,在智能手机、智能平板上浏览的相关信息如新闻、微博、图片、图书、杂志,以及会话消息等,都需要一个载体来显示。由于富文本(Rich Text Format)格式能够完美的支持新闻等包含图文的信息,可以实现对控件内的字符的多种不同格式的显示,比普通的文本格式具有更高的可读性。因此通常在智能终端上使用富文本控件的方式来显示相应图文信息的内容。在现有的IOS操作系统中,通过采用IOS SDK CoreText框架,并采用NSAttributeString存储字符串,并根据NSAtributestring属性进行解析。然而对于IOS操作系统的不同版本,在IOS5系统中字体用Coretext框架进行绘制与系统UI库中的字体不一致,即存在兼容性不完美的问题。其次,现有的IOS系统中的Coretext框架绘制的富文本控件,对消息中图文混排及微博页面显示的时候,只能整段或者整页的方式进行布局。并且,对于Coretext框架中,会对每个字符串会构建CFFrame结构,这种结构在调用系统draw函数进行绘制的时候会很耗时。因此,现有的Coretext框架中对某一个字符的颜色、字体和字号的转换都不够灵活,并且效率低下。只能对一整段的字符串进行属性加工,同时设置字体、字号、颜色等。不能对其中某一字符进行属性加工,并且不能响应相应的点击事件。综上所述,现有的IOS系统中的富文本显示方法存在不能针对某个字符进行属性加工的问题。
技术实现思路
本专利技术提供了一种智能终端中富文本显示的方法和系统,本专利技术提供的技术方案能够解决现有的IOS系统中的富文本显示方法存在不能针对某个字符进行属性加工的问题。为达到所述目的,本专利技术的技术方案是这样实现的:本专利技术公开了一种智能终端中富文本显示的方法,该方法包括:将输入的源字符串加载到缓存区中;对缓存区中的源字符串进行遍历,对遍历到的每个字符生成对应的绘制结构体,并将绘制结构体依次保存到数组中;其中,一个字符的绘制结构体包括:字符和该字符的绘制属性信息;依次读取所述数组中的绘制结构体,根据绘制结构体中的绘制属性信息绘制对应的字符。在上述方法中,在将输入的源字符串加载到缓存区中之后,该方法进一步包括:根据预设的正则表达式获取所述缓存区中的源字符串中的特定字符串,以及所述特定字符串的起始位置和结束位置;将所述特定字符串的起始位置和结束位置以及对应的类型保存在符号表中;所述对缓存区中的源字符串进行遍历,对遍历到的每个字符生成对应的绘制结构体包括:依次对缓存区中的源字符串进行遍历;每遍历一个字符,查找一次符号表;当遍历到的字符为所述符号表中的特定字符串中的字符时,将属于同一个特定字符串中的各字符的绘制属性信息设置为相同;其中,所述特定字符串包括以下一种或多种:手机号码、URL地址和电子邮箱地址。在上述方法中,该方法还包括:预先设置图片表,在所述图片表中保存图片路径与转义字符的一一映射关系;所述对缓存区中的源字符串进行遍历,对遍历到的每个字符生成对应的绘制结构体,并将绘制结构体依次保存到数组中还包括:当所遍历到的字符为转义字符时,获取所述转义字符的起始位置和结束位置;根据所述图片表,获取所述转义字符对应的图片路径;根据所述转义字符以及对应的图片路径生成对应的绘制结构体,将所述绘制结构体保存在数组中;其中,所述特定字符串的字符的绘制结构体还包括:用于指向所述特定字符串的指针;当接收到点击所绘制的特定字符串中的任意一个字符的指令时,根据所述字符的绘制结构体中指针获取对应的特定字符串;执行所获取的特定字符串所对应的操作。在上述方法中,所述缓存区包括:第一缓存区和第二缓存区;所述将输入的源字符串加载到缓存区中,对缓存区中的源字符串进行遍历包括:从所述源字符串中依次读取指定长度的字符串填入第一缓存区和第二缓存区中,在遍历完所述第一缓存区中的字符串之后,遍历第二缓存区中的字符串,同时删除第一缓存区中的字符串,并从所述源字符串的剩余字符串中读取指定长度的字符串填入第一缓存区中;在遍历完所述第二缓存区中的字符串之后,遍历第一缓存区中的字符串,同时删除第二缓存区中的字符串,并从所述源字符串的剩余字符串中读取指定长度的字符串填入第二缓存区中;依次循环,直至所述源字符串遍历完成。在上述方法中,所述对缓存区中的源字符串进行遍历,对遍历到的每个字符生成对应的绘制结构体包括:设置起始指针和游标指针,所述游标指针的起始位置与所述起始指针的起始位置相同;其中,所述起始指针的起始位置为所述源字符串的起始处;所述游标指针向前探测,在所述游标指针向前探测的过程中,查找符号表和图片表;当探测到某个字符的类型与上一个字符的类型不同时,停止探测,并将游标指针回退到该字符的上一个字符的位置;获取所述起始指针和游标指针之间的字符串,对所述获取到的字符串中的每个字符生成与对应的绘制结构体;将所述起始指针的位置跳转到所述游标指针之前的位置,将所述游标指针跳转到所述起始指针跳转之后的位置;所述游标指针再次进行探测,直至源字符串遍历完成;其中,所述对遍历到的每个字符生成对应的绘制结构体包括:根据用户输入的指令,为遍历到的每个字符设置绘制属性信息;其中,所述绘制属性信息包括以下的一种或多种:类型、字体、颜色和字号。在上述方法中,所述依次读取所述数组中的绘制结构体,根据绘制结构体中的绘制属性信息绘制对应的字符包括:依次读取所述数组中的绘制结构体,根据每次所读取的绘制结构体体中的字号信息绘制对应的字符;或者,依次读取所述数组中的多个具体相同类型的绘制结构体,分别获取所述读取的多个绘制结构体中的字号信息,并计算所述多个字符的总长度;根据计算得到的总长度,一次性的绘制对应的多个字符。本专利技术还公开了一种智能终端中富文本显示的系统,该系统包括:缓存模块、遍历模块和绘制模块;缓存模块,用于加载输入的源字符串;遍历模块,用于对缓存模块中的源字符串进行遍历,对遍历到的每个字符生成对应的绘制结构体,并将绘制结构体依次保存到数组中;其中,一个字符的绘制结构体包括:字符和该字符的绘制属性信息;绘制模块,用于依次读取所述数组中的绘制结构体,根据绘制结构体本文档来自技高网
...
一种智能终端中富文本显示的方法和系统

【技术保护点】
一种智能终端中富文本显示的方法,其特征在于,该方法包括:将输入的源字符串加载到缓存区中;对缓存区中的源字符串进行遍历,对遍历到的每个字符生成对应的绘制结构体,并将绘制结构体依次保存到数组中;其中,一个字符的绘制结构体包括:字符和该字符的绘制属性信息;依次读取所述数组中的绘制结构体,根据绘制结构体中的绘制属性信息绘制对应的字符。

【技术特征摘要】
1.一种智能终端中富文本显示的方法,其特征在于,该方法包括:
将输入的源字符串加载到缓存区中;
对缓存区中的源字符串进行遍历,对遍历到的每个字符生成对应的绘制
结构体,并将绘制结构体依次保存到数组中;其中,一个字符的绘制结构体
包括:字符和该字符的绘制属性信息;
依次读取所述数组中的绘制结构体,根据绘制结构体中的绘制属性信息
绘制对应的字符。
2.根据权利要求1所述的方法,其特征在于,
在将输入的源字符串加载到缓存区中之后,该方法进一步包括:根据预
设的正则表达式获取所述缓存区中的源字符串中的特定字符串,以及所述特
定字符串的起始位置和结束位置;将所述特定字符串的起始位置和结束位置
以及对应的类型保存在符号表中;
所述对缓存区中的源字符串进行遍历,对遍历到的每个字符生成对应的
绘制结构体包括:依次对缓存区中的源字符串进行遍历;每遍历一个字符,
查找一次符号表;当遍历到的字符为所述符号表中的特定字符串中的字符时,
将属于同一个特定字符串中的各字符的绘制属性信息设置为相同;
其中,所述特定字符串包括以下一种或多种:手机号码、URL地址和电
子邮箱地址。
3.根据权利要求2所述的方法,其特征在于,
该方法还包括:预先设置图片表,在所述图片表中保存图片路径与转义
字符的一一映射关系;
所述对缓存区中的源字符串进行遍历,对遍历到的每个字符生成对应的
绘制结构体,并将绘制结构体依次保存到数组中还包括:
当所遍历到的字符为转义字符时,获取所述转义字符的起始位置和结束
位置;
根据所述图片表,获取所述转义字符对应的图片路径;
根据所述转义字符以及对应的图片路径生成对应的绘制结构体,将所述

\t绘制结构体保存在数组中;
其中,所述特定字符串的字符的绘制结构体还包括:用于指向所述特定
字符串的指针;
当接收到点击所绘制的特定字符串中的任意一个字符的指令时,根据所
述字符的绘制结构体中指针获取对应的特定字符串;
执行所获取的特定字符串所对应的操作。
4.根据权利要求1所述的方法,其特征在于,所述缓存区包括:第一缓
存区和第二缓存区;
所述将输入的源字符串加载到缓存区中,对缓存区中的源字符串进行遍
历包括:
从所述源字符串中依次读取指定长度的字符串填入第一缓存区和第二缓
存区中,
在遍历完所述第一缓存区中的字符串之后,遍历第二缓存区中的字符串,
同时删除第一缓存区中的字符串,并从所述源字符串的剩余字符串中读取指
定长度的字符串填入第一缓存区中;
在遍历完所述第二缓存区中的字符串之后,遍历第一缓存区中的字符串,
同时删除第二缓存区中的字符串,并从所述源字符串的剩余字符串中读取指
定长度的字符串填入第二缓存区中;
依次循环,直至所述源字符串遍历完成。
5.根据权利要求1所述的方法,其特征在于,所述对缓存区中的源字符
串进行遍历,对遍历到的每个字符生成对应的绘制结构体包括:
设置起始指针和游标指针,所述游标指针的起始位置与所述起始指针的
起始位置相同;其中,所述起始指针的起始位置为所述源字符串的起始处;
所述游标指针向前探测,在所述游标指针向前探测的过程中,查找符号
表和图片表;
当探测到某个字符的类型与上一个字符的类型不同时,停止探测,并将
游标指针回退到该字符的上一个字符的位置;
获取所述起始指针和游标指针之间的字符串,对所述获取到的字符串中
的每个字符生成与对应的绘制结构体;
将所述起始指针的位置跳转到所述游标指针之前的位置,将所述游标指
针跳转到所述起始指针跳转之后的位置;
所述游标指针再次进行探测,直至源字符串遍历完成;
其中,所述对遍历到的每个字符生成对应的绘制结构体包括:
根据用户输入的指令,为遍历到的每个字符设置绘制属性信息;
其中,所述绘制属性信息包括以下的一种或多种:类型、字体、颜色和
字号。
6.根据权利要求2所述的方法,其特征在于,
所述依次读取所述数...

【专利技术属性】
技术研发人员:曹立冬
申请(专利权)人:北京新媒传信科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1