jzqCode / TagTextView

在TextView的指定位置添加标签,支持属性快速配置和自定义标签

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

TagTextView

API Gradle-4.1.2

SDK主要用于在TextView的指定位置添加文本、图片、图文、网络标签,基本能满足大多数APP的开发,对于比较复杂的标签还可以添加自定义View来实现,SDK中包含了给文本添加下划线、删除线、标记文本颜色、超链等扩展方法。

image

API特色

  • 支持在文本的任意位置添加各种不同标签
  • 支持指定位置、文本替换为指定标签
  • 支持设置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说明

XML属性

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时有效

TagConfig属性

API 描述 默认值 说明
type 标签类型 TEXT-文本,IMAGE-图片,TEXT_IMAGE-图文结合,URL-网络链接
textSize 标签上文本的字体大小 单位PX,不传就和TextView的textSize保持一致
textColor 标签上文本的字体颜色 Color.WHITE
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

About

在TextView的指定位置添加标签,支持属性快速配置和自定义标签


Languages

Language:Kotlin 73.3%Language:Java 26.7%