Android TextView 添加部分文字高亮,点击功能
2015-05-28 15:28
555 查看
如图,这里我想要的应用场景大概就是2处。
1. 图中"#教父#"表示的话题性质的内容;
2. 图中"@你我零距离"表示用户昵称的内容。
基本这些新浪微博客户端也都有。
![](http://images0.cnblogs.com/blog2015/594710/201505/281517004381894.png)
话题的实现方式:
1. 检查帖子内容中是否包含双井号,有的话取出开始和结束位置,还有双井号包含的内容。
上图代码我只是测试可行性,未完善的思考,比如,我只取了1个话题,而内容中可能包含多个话题或者说多个#井号的情况未考虑。
另外有一点,什么正则表达式的几种用法也没深究,什么贪婪、侵占、勉强什么的。参考:http://www.cppblog.com/biao/archive/2010/02/05/107298.html
2. 使用 ClickableSpan
用户昵称的处理方式基本也是这样。
1. 图中"#教父#"表示的话题性质的内容;
2. 图中"@你我零距离"表示用户昵称的内容。
基本这些新浪微博客户端也都有。
![](http://images0.cnblogs.com/blog2015/594710/201505/281517004381894.png)
话题的实现方式:
1. 检查帖子内容中是否包含双井号,有的话取出开始和结束位置,还有双井号包含的内容。
/** *识别字符串中的话题,话题是双"#"包含的一段文本 * */ public static boolean containsTopic(String content){ if(content==null){ return false; } return content.matches(".*\\#.+\\#.*"); } public static Topic getTopicStartEnd(String content){ Pattern pattern = Pattern.compile("\\#.+?\\#"); Matcher m = pattern.matcher(content); if(m.find()){ Topic t = new Topic(); t.setStart(m.start()); t.setEnd(m.end()); t.setTopicText(m.group()); System.out.println("start-end:"+m.start()+"-"+m.end()+":"+m.group()); return t; }else{ return null; } }
上图代码我只是测试可行性,未完善的思考,比如,我只取了1个话题,而内容中可能包含多个话题或者说多个#井号的情况未考虑。
另外有一点,什么正则表达式的几种用法也没深究,什么贪婪、侵占、勉强什么的。参考:http://www.cppblog.com/biao/archive/2010/02/05/107298.html
2. 使用 ClickableSpan
ClickableSpan span = new ClickableSpan() { @Override public void onClick(View widget) { Topic tc = (Topic)widget.getTag();//setTag用于传递数据 Log.d("spannn","click......................"+tc.getTopicText()); } }; content.setTag(c); content.setMovementMethod(LinkMovementMethod.getInstance()); Spannable wordtoSpan = new SpannableString(contentText); wordtoSpan.setSpan(span, c.getStart(), c.getEnd(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); content.setText(wordtoSpan);
用户昵称的处理方式基本也是这样。
相关文章推荐
- Android TextView 部分文字变色添加点击事件
- TextView 部分文字高亮、点击、添加超链接、替换字体、富文本、图片替换文字等实现
- android Textview 实现展开收缩功能+部分文字点击 (SpannableString)
- android textview可以设置文字颜色 部分文字点击事件处理
- Android TextView中添加链接并在链接部分字体变色可点击
- android--设置TextView部分文字的颜色和背景(高亮显示)
- android 实现textview部分文字点击效果,类似于微博的话题丶用户
- Android中TextView实现部分文字可点击跳转
- android中TextView 添加ClickableSpan后点击选中文字背景变色问题
- 名词解释功能:TextView 给部分文字加下划线并实现点击事件
- Android TextView 高亮字体并添加点击事件
- android中TextView 添加ClickableSpan后点击选中文字背景问题
- Android中为TextView中的部分文字设置颜色和点击事件
- 最新历史版本 :android--设置TextView部分文字的颜色和背景(高亮显示)
- Android TextView中部分文字高亮显示
- android 为TextView的部分文字设置超链接样式并监听点击事件
- 给TextView中的部分文字变色和添加点击
- Android 关于TextView中,设置指定部分文字改变颜色,和指定部分文字点击事件
- 最新历史版本 :android--设置TextView部分文字的颜色和背景(高亮显示)
- 最新历史版本 :android--设置TextView部分文字的颜色和背景(高亮显示)