您的位置:首页 > 移动开发 > Android开发

TextView 部分文字高亮、点击、添加超链接、替换字体、富文本、图片替换文字等实现

2017-08-17 15:51 2466 查看
在项目中,经常会遇到部分文字做高亮点击处理,或者做成富文本,或者添加超链接等处理,一般简单的我们可以用 Html.fromHtml()来处理,然而一些复杂的要求,用 Html.fromHtml()来实现就比较麻烦了,这时就会用到SpannableString这个类,本文主要是介绍一款对SpannableStringBuilder类做封装的控件:HighlightTextView,可以轻松实现以上的项目场景。

演示


)

添加依赖

方法1:

allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}

dependencies {
compile 'com.github.albert-lii:HighlightTextView:1.0.0'
}


方法2:

compile project(':highlighttextview')


使用方法

布局文件

<com.liyi.highlight.HighlightTextView
android:id="@+id/highlighttextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="15sp" />


代码中设置

highlighttextView.addContent("文字内容")
// 设置文字颜色(12:文字颜色转变的开始位置,14:文字颜色转变的结束位置)
// 同时提供方法:.addFontColorStyleByKey(@ColorInt int color, String key)
.addFontColorStyle(Color.YELLOW, 12, 14)
// 设置文字背景色
// 同时提供方法:.addBgColorStyleByKey(@ColorInt int color, String key)
.addBgColorStyle(Color.BLUE, 0, 10)
// 直接搜索“文字内容”中的所有“关键字”,对所有“关键字”添加超链接
// 同时提供方法:.addURLStyle(String url, int start, int end)
.addURLStyleByKey("http://www.baidu.com", "关键字")
// 直接搜索“文字内容”中的所有“关键字”,对所有“关键字”添加点击事件
// 同时提供方法:.addClickStyle(final OnHighlightClickListener listener, final boolean isNeedUnderLine,
int start,int end)
.addClickStyleByKey(new HighlightTextView.OnHighlightClickListener() {
@Override
public void onTextClick(int position, View v) {
Toast.makeText(MainActivity.this, "关键字", Toast.LENGTH_SHORT).show();
}
}, true, "关键字")// true:是否添加下划线
// 将文字替换为图片(ImageSpan.ALIGN_BOTTOM:图片与文字底部对齐)
// 同时提供方法:.addImageStyle(ImageSpan span, int start, int end)
// drawable也可以是span、bitmap、resouceId
.addImageStyleByKey(drawable, ImageSpan.ALIGN_BOTTOM, "关键字")
// 设置字体样式
// .addTypefaceStyle(int style, int start, int end)
// .addTypefaceStyleByKey(int style, String key)
// 加删除线
// .addStrikethroughStyle(int start, int end)
// .addStrikethroughStyleByKey(String key)
// 执行
.build();

// 此方法搜索字符串中所有的key,并返回每个key的开始位置与结束位置的数组列表(return List<int[]> ===> int[0]开始位置,int[1]结束位置)
highlighttextView.searchAllIndex(String key)


所有方法都同时提供根据文字起始位置和结束位置来查找操作文字,和根据关键字段来查找操作文字。

github地址:

https://github.com/albert-lii/HighlightTextView

给个star,并不吃亏哦

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐