你的位置:首页 > 软件开发 > Java > 安卓开发笔记——高仿新浪微博文字处理(实现关键字高亮,自定义表情替换并加入点击事件实现)

安卓开发笔记——高仿新浪微博文字处理(实现关键字高亮,自定义表情替换并加入点击事件实现)

发布时间:2015-07-25 18:00:15
先让大家看下效果图,这个是我自己在闲暇时间仿写的新浪微博客户端:   今天来讲讲如何实现上图的效果,这里需要用到SpannableString这个工具类,如果你对这个类并不熟悉,可以先看下我之前写的2篇文章:《安卓开发笔记——个性化Te ...

安卓开发笔记——高仿新浪微博文字处理(实现关键字高亮,自定义表情替换并加入点击事件实现)

 

先让大家看下效果图,这个是我自己在闲暇时间仿写的新浪微博客户端:

安卓开发笔记——高仿新浪微博文字处理(实现关键字高亮,自定义表情替换并加入点击事件实现)

安卓开发笔记——高仿新浪微博文字处理(实现关键字高亮,自定义表情替换并加入点击事件实现)  安卓开发笔记——高仿新浪微博文字处理(实现关键字高亮,自定义表情替换并加入点击事件实现)

 

今天来讲讲如何实现上图的效果,这里需要用到SpannableString这个工具类,如果你对这个类并不熟悉,可以先看下我之前写的2篇文章:

《安卓开发笔记——个性化TextView(新浪微博)》:http://www.cnblogs.com/lichenwei/p/4411607.html

《安卓开发笔记——丰富多彩的TextView》:http://www.cnblogs.com/lichenwei/p/4612079.html

 

先来说下关于新浪微博消息的结构,在获取新浪微博消息的时候,我们会发现这几个东西:

话题:以##为收尾,例如#世界读书日#等。

At:以@开头,空格结尾,例如@新浪微博 等。

网址:以http://开头,例如http://www.baidu.com/。

表情:以[]为收尾,例如[微笑]、[哈哈]等。

 

在一段140字的文本中要找出上面这些关键字,无疑就是用到正则表达式了,在这里我定义了4个正则表达式:

  // 定义正则表达式  private static final String AT = "@[\u4e00-\u9fa5\\w]+";// @人  private static final String TOPIC = "#[\u4e00-\u9fa5\\w]+#";// ##话题  private static final String EMOJI = "\\[[\u4e00-\u9fa5\\w]+\\]";// 表情  private static final String URL = "http://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]";// url

原标题:安卓开发笔记——高仿新浪微博文字处理(实现关键字高亮,自定义表情替换并加入点击事件实现)

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录