Skip to content

这是一个Android 客户端富文本排列程序,其主要功能是: 输入一段格式化的文本,其中包含有如下富文本类型:纯文本、图片、超链接、表情、纯 URL。解析里面的所有富文本,并以合适的形式在 Android 客户端进行显示。

Notifications You must be signed in to change notification settings

Li7tleMK/rich-text-hybrid-layout

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 

Repository files navigation

rich-text-hybrid-layout

这是一个Android 客户端富文本排列程序,其主要功能是:

输入一段格式化的文本,其中包含有如下富文本类型:纯文本、图片、超链接、表情、纯 URL。解析里面的所有富文本,并以合适的形式在 Android 客户端进行显示。

  1. hybarrange/ 文件夹下是源代码程序;
  2. appcompat_v7/ 文件夹下是 app compat v7 扩展包,兼容低版本所用;
  3. apk/ 下是源代码程序编译的 apk 文件,供安装试用。

核心功能:

主要集中在在源代码的 com.example.hybarrangedemo.utils 包中,这是一个用装饰模式封装的富文本解析组件,如果你需要添加新的富文本 类型,你可以实现一个 IParser ,但是要注意不同富文本之间正则表达式的包含关系,避免重复解析,具体请参考 com.example.hybarrangedemo.utils.WeburlParser 的实现。

富文本解析器的使用方式:

	// 通过迭代装饰方式构造解析器。
	IParser parser = new SmileyParser(mContext);
	parser = new ImageParser(mContext, parser);
	parser = new HyperlinkParser(mContext, parser);
	parser = new WeburlParser(mContext, parser);
	
	// 执行解析并返回解析文本段队列。
	ParseManager manager = new ParseManager();
	ArrayList<ParsedSegment> segments = manager.parse(parser, rich);

其中 rich 为需要解析的格式化的输入文本, ParsedSegment 中包含了解析和用 span 修饰过的文本段,有两个字段:

  1. text 解析和用 span 修饰过的文本;
  2. 文本类型:未知类型(纯文本或者非图片富文本)或图片。

关于图片加载:

图片的异步加载使用了@nostra13 大神的 Android-Universal-Image-Loader 组件https://github.com/nostra13/Android-Universal-Image-Loader 这是一个强大到令人发指的图片加载神器,它几乎包括了所有你能想象到的所有图片加载的功能。

关于缺点:

1. 其正则规律具有包含关系的不同富文本的处理缺乏可扩展性,目前只对 Web url ,图片,超链接这三种特定的富文本进行了过滤处理,以 避免重复解析; 2. 请狠戳你能发现的一切不爽的地方并通知我!

About

这是一个Android 客户端富文本排列程序,其主要功能是: 输入一段格式化的文本,其中包含有如下富文本类型:纯文本、图片、超链接、表情、纯 URL。解析里面的所有富文本,并以合适的形式在 Android 客户端进行显示。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published