Android TextView中部分文字高亮显示
Android TextView中部分文字高亮显示
/** * 关键字高亮显示 * * @param context 上下文 * @param text 需要显示的文字 * @param target 需要高亮的关键字 * @param color 高亮颜色 * @param start 头部增加高亮文字个数 * @param end 尾部增加高亮文字个数 * @return 处理完后的结果 */ public static SpannableString highlight(Context context, String text, String target, String color, int start, int end) { SpannableString spannableString = new SpannableString(text); Pattern pattern = Pattern.compile(target); Matcher matcher = pattern.matcher(text); while (matcher.find()) { ForegroundColorSpan span = new ForegroundColorSpan(Color.parseColor(color)); spannableString.setSpan(span, matcher.start() - start, matcher.end() + end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); } return spannableString; }
start与end参数默认情况下传0,当需要高亮的关键字前后有符号时(比如[高亮]),start与end参数可传1。
调用方法
SpannableString highlightText = StringUtils.highlight(this, "关键字高亮", "高亮", "#EA2D2D", 0, 0); textView.setText(highlightText);
效果如下图所示:
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
相关推荐
-
Android中TextView文本高亮和点击行为的封装方法
前言 相信大家应该都有所体会,对于一个社交性质的App,业务上少不了给一段文本加上@功能.话题功能,或者是评论上要高亮人名的需求.当然,Android为我们提供了ClickableSpan,用于解决TextView部分内容可点击的问题,但却附加了一堆的坑点: ClickableSpan 默认没有高亮行为,也不能添加背景颜色: ClickableSpan 必须配合 MovementMethod 使用 一旦使用 MovementMethod,TextView 必定消耗事件 当点击ClickableS
-
Android中实现词组高亮TextView方法示例
前言 本文主要给大家介绍了关于Android实现词组高亮TextView的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. HighlightTextView Android文本高亮控件,基于View实现. 特点 文本高亮 单词自动换行 高亮词组保持在同一行显示 主要逻辑: 两个 Paint 负责绘制不同的文字 在每次绘制之前计算将要绘制的文本是否会超出屏幕宽度,如果超出则换行 protected void onDraw(Canvas canvas) { super.o
-
Android TextView实现词组高亮的示例代码
本文介绍了Android TextView实现词组高亮的示例代码,分享给大家,具体如下: HighlightTextView Android文本高亮控件,基于View实现. 特点 文本高亮 单词自动换行 高亮词组保持在同一行显示 效果如下: 主要逻辑: 两个 Paint 负责绘制不同的文字 在每次绘制之前计算将要绘制的文本是否会超出屏幕宽度,如果超出则换行 protected void onDraw(Canvas canvas) { super.onDraw(canvas); float x_d
-
Android TextView中部分文字高亮显示
Android TextView中部分文字高亮显示 /** * 关键字高亮显示 * * @param context 上下文 * @param text 需要显示的文字 * @param target 需要高亮的关键字 * @param color 高亮颜色 * @param start 头部增加高亮文字个数 * @param end 尾部增加高亮文字个数 * @return 处理完后的结果 */ public static SpannableString highlight(Context
-
Android TextView中部分文字高亮显示
Android TextView中部分文字高亮显示 /** * 关键字高亮显示 * * @param context 上下文 * @param text 需要显示的文字 * @param target 需要高亮的关键字 * @param color 高亮颜色 * @param start 头部增加高亮文字个数 * @param end 尾部增加高亮文字个数 * @return 处理完后的结果 */ public static SpannableString highlight(Context
-
Android设置当TextView中的文字超过TextView的容量时用省略号代替
有时候在ListView中显示Textview时由于长度过长而导致text会隔行显示,UI上看起来就比较的不友好. 官方提供了相关的实现单行显示的方法. 只需要下边的设置: textview.setSingleLine(); textview.setEllipsiz(TextUtils.TruncateAt.valueOf("END")); 在xml中设置如下: android:singleLine="true" android:ellipsize="en
-
Android TextView中文字通过SpannableString设置属性用法示例
本文实例讲述了Android TextView中文字通过SpannableString设置属性的方法.分享给大家供大家参考,具体如下: 在Android中,TextView是我们最常用的用来显示文本的控件. 一般情况下,TextView中的文本都是一个样式.那么如何对于TextView中各个部分的文本来设置字体,大小,颜色,样式,以及超级链接等属性呢?下面我们通过SpannableString的具体实例操作来演示一下. //创建一个 SpannableString对象 SpannableStri
-
Android 开发中根据搜索内容实现TextView中的文字部分加粗
实现方式没有引入任何依赖,轻量级实现需求效果 最近遇到一个需求,需要做一个搜索功能.搜索的内容需要加粗显示. 完成了这个功能后,写下此博客,记录一下实现过程 效果图 首先自定义一个StyleSpan,在StyleSpan里做加粗的等匹配状态的设置 @SuppressLint("ParcelCreator") public class SearchStyleSpan extends StyleSpan { public SearchStyleSpan(int style) { super
-
在Android TextView中显示图片的4种方式详解
我们知道,TextView控件一般是用来显示文本的,而图片一般是用ImageView控件来显示. 那TextView能否显示图片呢?答案是肯定的!下面列出常见的4种方式. 1.XML文件中指定属性值 这种方式应该是最常用的了,在TextView的左上右下显示图片,可用 android:drawableLeft android:drawableTop android:drawableRight android:drawableBottom 比如我们要在TextView的顶部设置图片,代码如
-
Android TextView控件文字添加下划线的实现方法
如下所示: TextView tv = (TextView) findViewById(R.id.text); tv.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG); tv.setText("添加下划线"); 以上就是小编为大家带来的Android TextView控件文字添加下划线的实现方法的全部内容了,希望对大家有所帮助,多多支持我们~
-
Android TextView中文本点击文字跳转 (代码简单)
在web页面中,有a标签的超链接实现跳转,同样在Android当中,用TextView控件来显示文字,实现它的事件来跳转. 用过微博Android手机端的朋友的都知道微博正文有时有一些高亮显示的文本,如话题.提到的人等等,当点击这些文本时会跳到另外一个页面(即另一个activity),下面就要来模仿微博的这个功能 点击#hello# 点击@人 一.新建一个名为WeiboContentTest的工程 二.在布局文件中添加一个textview 三.在mainactivity中创建该textview
-
android TextView中识别多个url并分别点击跳转方法详解
实现方案: 我们直接参考实例代码: private String pattern = "((http|ftp|https)://)(([a-zA-Z0-9\\._-]+\\.[a-zA-Z]{2,6})|([0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}))(:[0-9]{1,4})*(/[a-zA-Z0-9\\&%_\\./-~-]*)?|(([a-zA-Z0-9\\._-]+\\.[a-zA-Z]{2,6})|([0-9]{1,3}\
-
android 更改TextView中任意位置字体大小和颜色的方法
这里介绍两种方法,一种是Spannable,一种是Html.fromHtml(通过html标签来改变),实际中看您使用哪种方便选择使用即可 1.Html.fromHtml的使用 TextView textView = (TextView) findViewById(R.id.text); String textSource = "修改TextView中部分文字的<font color='#ff0000'><big>大</big><small>小&l
随机推荐
- PHP中使用cURL实现Get和Post请求的方法
- 12种实现301网页重定向方法的代码实例(含Web编程语言和Web服务器)
- 荐书|您有一份JavaScript书单待签收
- Docker 打包python的命令详解
- java 学习笔记(入门篇)_java的安装与配置
- OpenStack之日志详细介绍
- Asp.NET 多层登陆实现代码
- php中读写文件与读写数据库的效率比较分享
- PHP 变量类型的强制转换
- 从零开始搭建MySQL MMM架构
- Shell脚本实现监控rsync数据是否传输完
- thinkPHP中create方法与令牌验证实例浅析
- 使用js+jquery实现无限极联动
- js基于cookie记录来宾姓名的方法
- C#中两个byte如何相加
- MyBatis框架之mybatis逆向工程自动生成代码
- Centos6.x服务器配置jdk+tomcat+mysql环境(jsp+mysql)
- Android RecyclerView的Item点击事件实现整理
- python实现在sqlite动态创建表的方法
- 复杂检索数据并分页显示的处理方法