TextView部分文字变色、可点击。(微博话题 变色、点击)
来源:互联网 发布:uc手机淘宝 编辑:程序博客网 时间:2024/04/27 21:51
仿照微博话题,实现 textview 部分文字变色,且可点击。
直接看代码:
private CharSequence setTextView(String desc,TextView tv ) { /*正则表达式 取出 两个#之间的内容 (不包含#) */ Pattern p = Pattern.compile("#([^\\#|.]+)#"); /*android 提供的 具有强大的CharSequence 处理能力 各种区域处理*/ SpannableString ss = new SpannableString(desc); Matcher m = p.matcher(desc); /*由于@昵称、#话题#、http://等这些关键字是可以点击的,所以我们需要对TextView做一些处理,需要去设置它的MovementMethod*/ if (m.find()) { // 要实现文字的点击效果,这里需要做特殊处理 tv.setMovementMethod(LinkMovementMethod.getInstance()); // 重置正则位置 m.reset(); } /*循环找出每个复合正则的字符串,逐个处理*/ while (m.find()) { /*取出 字符串 前后添加#*/ final String s = "#" + m.group(1) + "#"; int startIndex = m.start(1) - 1; int endIndex = startIndex + s.length(); /*区域处理*/ ss.setSpan(new ClickableSpan() { @Override public void onClick(View widget) { Log.e("MyClickSpan", "onClick-----" + s); Toast.makeText(context, "您点击的内容是:" + s, Toast.LENGTH_SHORT).show(); } @Override public void updateDrawState(TextPaint ds) { // super.updateDrawState(ds); // 按自己需求 重写 父类方法. // 字体变色 ds.setColor(Color.parseColor("#507daf")); // 设置下划线 ds.setUnderlineText(false); } }, startIndex, endIndex, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); } return ss; }
参考:http://www.cnblogs.com/lichenwei/p/4676214.html?utm_source=tuicool&utm_medium=referral
1 0
- TextView部分文字变色、可点击。(微博话题 变色、点击)
- TextView技巧,例如:实现部分文字变色和可点击
- TextView自定义省略号、部分文字变色、部分文字点击
- 给TextView中的部分文字变色和添加点击
- TextView点击变色(selector)
- button点击变色,文字变色
- Button点击文字变色
- TextView部分文字可点击
- Android TextView中添加链接并在链接部分字体变色可点击
- Android Button点击效果(按钮背景变色、文字变色)
- Android Button点击效果(按钮背景变色、文字变色)
- Button,TextView点击字体变色
- 动态添加Textview+点击变色
- Androidstudio之TextView点击变色
- textview 中间的字变色并可点击
- javascript点击当前文字变色
- android 实现textview部分文字点击效果,类似于微博的话题丶用户
- 点击变色
- H
- iOS 隐藏navigationBar下面那条线
- Unity3D中的Coroutine详解
- android 音乐播放工具类MediaPlayer
- MFC 添加窗口背景
- TextView部分文字变色、可点击。(微博话题 变色、点击)
- 笔记4(判断语句、循环语句、list、dict)
- Spring动态数据源创建以及切换方案
- 硬件加速引起的问题
- SQL的锁
- 商品详情页系统的Servlet3异步化实践
- erlang md5 生成
- MySQL 的 RowNum 实现
- 京东商品详情页碎碎念