SDK主要用于在TextView的指定位置添加文本、图片、图文、网络标签,基本能满足大多数APP的开发,对于比较复杂的标签还可以添加自定义View来实现,SDK中包含了给文本添加下划线、删除线、标记文本颜色、超链等扩展方法。
- 支持在文本的任意位置添加各种不同标签
- 支持指定位置、文本替换为指定标签
- 支持设置TextView的行间距
- 支持网络标签
- 支持Gif标签
- 支持自定义布局文件
- 支持点击响应事件
- 支持下划线
- 支持删除线
- 支持超链
- 支持Kotlin、Java
Step 1.先在 build.gradle(Project:XXX) 的 repositories 添加:
```
allprojects {
repositories {
...
maven { url "https://jitpack.io" }
}
}
```
Step 2. 然后在 build.gradle(Module:XXX) 的 dependencies 添加:
```
dependencies {
implementation 'com.github.ChinaLike:TagTextView:参照顶部最新版本'
// 如果支持网络图片标签,需要添加Glide库
//implementation "com.github.bumptech.glide:glide:4.11.0"
}
```
Step 3. 如果支持网络标签,需要在
AndroidManifest.xml
中添加:
```
<uses-permission android:name="android.permission.INTERNET" />
```
详细用法可参考Demo Kotlin使用参考MainActivity文件 Java使用参考JavaActivity文件
API | 描述 | 默认值 | 说明 |
---|---|---|---|
tvt_type |
标签类型 | text-文本标签,image-图片标签,textImage-图文 | |
tvt_radius |
标签圆角 | tvt_type 为text、textImage时有效 |
|
tvt_left_top_radius |
标签左上角圆角 | 2dp | tvt_type 为text、textImage,且tvt_radius 未设置有效 |
tvt_left_bottom_radius |
标签左下角圆角 | 2dp | tvt_type 为text、textImage,且tvt_radius 未设置有效 |
tvt_right_top_radius |
标签右上角圆角 | 2dp | tvt_type 为text、textImage,且tvt_radius 未设置有效 |
tvt_right_bottom_radius |
标签右下角圆角 | 2dp | tvt_type 为text、textImage,且tvt_radius 未设置有效 |
tvt_padding |
标签内边距 | tvt_type 为text、textImage时有效 |
|
tvt_top_padding |
标签上内边距 | 0dp | tvt_type 为text、textImage,且tvt_padding 未设置有效 |
tvt_right_padding |
标签右内边距 | 5dp | tvt_type 为text、textImage,且tvt_padding 未设置有效 |
tvt_bottom_padding |
标签下内边距 | 0dp | tvt_type 为text、textImage,且tvt_padding 未设置有效 |
tvt_left_padding |
标签左内边距 | 5dp | tvt_type 为text、textImage,且tvt_padding 未设置有效 |
tvt_background_color |
标签背景颜色 | Color.GRAY | tvt_type 为text、textImage时有效 |
tvt_background_img |
标签背景图片 | tvt_type 为text、textImage时有效 |
|
tvt_start_gradient_background_color |
标签渐变开始颜色 | tvt_type 为text、textImage时有效 |
|
tvt_end_gradient_background_color |
标签渐变结束颜色 | tvt_type 为text、textImage时有效 |
|
tvt_stroke_width |
标签边框宽度 | tvt_type 为text、textImage时有效 |
|
tvt_stroke_color |
标签边框颜色 | Color.GRAY | tvt_type 为text、textImage,且tvt_stroke_width >0有效 |
tvt_text_size |
文本字体大小 | tvt_type 为text、textImage有效 |
|
tvt_text_color |
文本字体颜色 | Color.WHITE | tvt_type 为text、textImage有效 |
tvt_width |
标签宽度 | tvt_type 为text、textImage有效 |
|
tvt_height |
标签高度 | tvt_type 为text、textImage有效 |
|
tvt_align |
标签与文本对齐方式 | Align.CENTER | baseline-基线对齐,center-中心对齐,bottom-底部对齐,top-顶部对齐 |
tvt_text |
标签文本 | tvt_type 为text、textImage有效 |
|
tvt_image_resource |
标签图片 | tvt_type 为image、textImage有效 |
|
tvt_position |
标签显示位置 | 0 | 默认在文本最前面 |
tvt_margin_left |
标签距离左侧距离 | 0 | |
tvt_margin_right |
标签距离右侧距离 | 0 | |
tvt_text_margin_image |
文本与图片的距离 | 0dp | tvt_type 为textImage有效 |
tvt_layout |
自定义View标签 | 不设置tvt_type 时有效 |
|
tvt_image_align_text |
图片与文字的位置关系 | Orientation.LEFT | tvt_type 为textImage有效,left-图片在文字的左边(默认),top-图片在文字上边,right-图片在文字的右边,bottom-图片在文字的下边 |
tvt_drawable_zoom_type |
图片缩放类型 | DrawableZoomType.ORIGINAL | |
tvt_image_width |
图片的宽度 | tvt_type 为url、image、textImage时有效 |
|
tvt_image_height |
图片的高度 | tvt_type 为url、image、textImage时有效 |
API | 描述 | 默认值 | 说明 |
---|---|---|---|
type | 标签类型 | TEXT-文本,IMAGE-图片,TEXT_IMAGE-图文结合,URL-网络链接 | |
textSize | 标签上文本的字体大小 | 单位PX,不传就和TextView的textSize保持一致 | |
textColor | 标签上文本的字体颜色 | Color.WHITE | |
typeface | 文本字体样式 | ||
width | 标签宽度 | 不设置自动适应 | |
height | 标签宽度 | 不设置自动适应 | |
radius | 标签的圆角 | ||
leftTopRadius | 标签左上的圆角 | 2dp | |
leftBottomRadius | 标签左下的圆角 | 2dp | |
rightTopRadius | 标签右上的圆角 | 2dp | |
rightBottomRadius | 标签右下的圆角 | 2dp | |
padding | 标签的内边距 | 默认值:topPadding=0,rightPadding=5,bottomPadding=0,leftPadding=5 | |
topPadding | 标签的上内边距 | 0dp | |
rightPadding | 标签的右内边距 | 5dp | |
bottomPadding | 标签的下内边距 | 0dp | |
leftPadding | 标签的左内边距 | 5dp | |
backgroundColor | 标签的背景颜色 | Color.GRAY | |
backgroundDrawable | 标签的背景图片 | ||
startGradientBackgroundColor | 标签的渐变开始颜色 | ||
endGradientBackgroundColor | 标签的渐变结束颜色 | ||
gradientOrientation | 标签的渐变样式 | GradientDrawable .Orientation .LEFT_RIGHT | |
strokeWidth | 标签的边框宽度 | 0 | |
strokeColor | 标签的边框颜色 | Color.GRAY | strokeWidth>0有效 |
imageAlignText | 图片在文字的那一个方向 | Orientation.LEFT | |
drawableZoomType | 图片缩放类型 | DrawableZoomType.ORIGINAL | |
imageWidth | 图片的宽度 | ||
imageHeight | 图片的高度 | ||
align | 标签的对齐方式 | Align.CENTER | |
text | 标签文本 | type为TYPE.TEXT、TYPE.TEXT_IMAGE有效 | |
imageResource | 标签图片 | type为TYPE.IMAGE、TYPE.TEXT_IMAGE有效 | |
imageDrawable | 标签图片 | type为TYPE.IMAGE、TYPE.TEXT_IMAGE有效 | |
imageBitmap | 标签图片 | type为TYPE.IMAGE、TYPE.TEXT_IMAGE有效 | |
imageUrl | 标签网络图片链接 | type为TYPE.URL有效 | |
position | 标签显示位置 | 0 | 多次添加依次排序 |
marginLeft | 标签距离左边距离 | 0dp | |
marginRight | 标签距离右边距离 | 0dp | |
textMarginImage | 标签内文字距离图片的距离 | 0dp | type为Type.TEXT_IMAGE有效 |
-
addTag(config:TagConfig, onClickListener: (() -> Unit)? = null)
-
添加标签
-
属性介绍
config:标签的样式配置,参考TagConfig
onClickListener:点击事件响应,默认:null
-
-
addTag(view:View,position = 0:Int,align:Align = Align.CENTER ,marginLeft:Int = 0,marginRight:Int = 0,onClickListener: (() -> Unit)? = null)
-
添加自定义标签
-
属性介绍
view:自定义View
position:显示位置,默认:0
align:对齐方式,默认:Align.CENTER
marginLeft:标签距离左侧距离,默认:0
marginRight:标签距离右侧距离,默认:0
onClickListener:点击事件,默认:null
-
-
addTextTag(block: TagConfig.() -> Unit)
-
添加文本标签
-
属性介绍
block:标签自定义参数
-
-
addTextTag(block: TagConfig.() -> Unit,onClickListener: () -> Unit)
-
添加文本标签
-
属性介绍
block:标签自定义参数
onClickListener:点击事件
-
-
addImageTag(block: TagConfig.() -> Unit)
-
添加图标标签
-
属性介绍
block: 标签自定义参数
-
-
addImageTag(block: TagConfig.() -> Unit,onClickListener: () -> Unit)
-
添加图标标签
-
属性介绍
block: 标签自定义参数
onClickListener:点击事件
-
-
addTextImageTag(block: TagConfig.() -> Unit)
-
添加图文标签
-
属性介绍
block: 标签自定义参数
-
-
addTextImageTag(block: TagConfig.() -> Unit,onClickListener: () -> Unit)
-
添加图文标签
-
属性介绍
block: 标签自定义参数
onClickListener:点击事件
-
-
addUrlTag(block: TagConfig.() -> Unit)
-
添加图文标签
-
属性介绍
block: 标签自定义参数
-
-
addUrlTag(block: TagConfig.() -> Unit,onClickListener: () -> Unit)
-
添加图文标签
-
属性介绍
block: 标签自定义参数
onClickListener:点击事件
-
-
replaceTag(tagText: String, config: TagConfig, isFirst: Boolean = true, onClickListener: (() -> Unit)? = null)
-
替换标签
-
属性介绍
tagText:需要替换的文本
config:标签配置
isFirst:是否匹配第一个,默认:true
onClickListener:点击事件,默认:null
-
-
replaceTag(tagText: String, view: View, isFirst: Boolean = true, align: Align = Align.CENTER, marginLeft: Int = 0, marginRight: Int = 0, onClickListener: (() -> Unit)? = null)
-
替换标签
-
属性介绍
tagText:需要替换的文本
view:自定义标签
isFirst:是否匹配第一个,默认:false
align:标签对齐方式,默认:Align.CENTER
marginLeft:标签距离左侧距离,默认:0
marginRight:标签距离右侧距离,默认:0
onClickListener:点击事件,默认:null
-
-
replaceTag(startIndex: Int, endIndex: Int, config: TagConfig, onClickListener: (() -> Unit)? = null)
-
替换标签
-
属性介绍
startIndex:开始下标
endIndex:结束下标
config:标签配置
onClickListener:点击事件,默认:null
-
-
replaceTag( startIndex: Int, endIndex: Int, view: View, align: Align = Align.CENTER, marginLeft: Int = 0, marginRight: Int = 0 , onClickListener: (() -> Unit)? = null)
-
替换标签
-
属性介绍
startIndex:开始位置
endIndex:结束位置
view:自定义标签
align:标签对齐方式,默认:Align.CENTER
marginLeft:标签距离左侧距离,默认:0
marginRight:标签距离右侧距离,默认:0
onClickListener:点击事件,默认:null
-
-
setUnderline(underlineText: String? = null, isFirst: Boolean = true)
-
设置文本下划线
-
属性介绍
underlineText:需要加下划线的文本,不设置则匹配所有文本
isFirst:是否匹配第一个指定字符串
-
-
setUnderline(startIndex: Int, endIndex: Int)
-
设置文本下划线
-
属性介绍
startIndex:开始下标
endIndex:结束下标
-
-
setDeleteLine(deleteLineText: String? = null, isFirst: Boolean = true)
-
设置文本删除线
-
属性介绍
deleteLineText:需要加删除线的文本,不设置则匹配所有文本
-
-
setDeleteLine(startIndex: Int, endIndex: Int)
-
设置文本删除线
-
属性介绍
startIndex:开始下标
endIndex:结束下标
-
-
setSpecificTextColor(@ColorInt color: Int,specificText: String,isFirst: Boolean = true,isUnderlineText: Boolean = false,click: () -> Unit = {})
-
设置指定文字颜色
-
属性介绍
color:制定文本颜色
specificText:指定文本
isFirst:匹配第一个,默认值:true
isUnderlineText:是否显示下划线,可选,默认值false
click:点击事件响应
-
-
setSpecificTextColor(@ColorInt color: Int,startIndex: Int,endIndex: Int,isUnderlineText: Boolean = false,click: () -> Unit = {})
-
设置指定文字颜色
-
属性介绍
color:制定文本颜色
startIndex:开始下标
endIndex:结束下标
isUnderlineText:是否显示下划线,可选,默认值false
click:点击事件响应
-
-
setURLSpan(startIndex: Int,endIndex: Int,type: LinkType,linkText: String,@ColorInt color: Int? = null,isUnderlineText: Boolean = false)
-
设置超链
-
属性介绍
startIndex:开始下标
endIndex:结束下标
type:超链接类型,参考LinkType
linkText:链接文本 ,比如跳转电话,只需要传入电话号码就可以
color:超链文本的颜色
isUnderlineText:是否显示下划线,默认值false
-
-
getOriginalText():CharSequence
- 获取原始文本