【Android】带下划线的TextView

序言

我们有时候需要一个类似这样的显示,上面是文字,下面是一条线
在这里插入图片描述

这样的显示效果是TextView实现不了的,需要我们自己进行修改一下。

实现

创建一个UnderlineTextView,继承系统的TextView

class UnderlineTextView(mContext: Context, attributeSet: AttributeSet) :androidx.appcompat.widget.AppCompatTextView(mContext, attributeSet) {private var underLinePains: Paint? = nullinit {underLinePains = Paint()underLinePains?.color =mContext.resources.getColor(R.color.agree_user_agreement_bottom_line_bg)underLinePains?.strokeWidth = 10funderLinePains?.strokeCap = Paint.Cap.SQUARE}override fun onDraw(canvas: Canvas?) {//注意这个顺序的问题,这样的顺序是先画TextView下面的带颜色的线段underLinePains?.let {canvas?.drawLine((0 - paddingStart).toFloat(),(height - 8).toFloat(),(width + paddingEnd).toFloat(),(height - 8).toFloat(), it)}//现在是进行TextView里面的文本的绘制super.onDraw(canvas)}
}

这是一个很简单的View,实现了我们需要的功能,同样的当我们需要对TextView设置其他的要求时,也可以按照这种步骤实现。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/146490.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[nlp] grad norm先降后升再降

grad norm先降后升再降正常嘛 在深度学习中,梯度的范数通常被用来衡量模型参数的更新程度,也就是模型的学习进度。在训练初期,由于模型参数的初始值比较随机,梯度的范数可能会比较大,这是正常现象。随着模型的训练&…

安装 eslint 配置指南 及 遇到的一些问题记录

前端eslint配置指南 背景 当前前端项目风格混乱,每个人有自己的开发习惯,有自己的格式化习惯,不便于项目的风格统一,不利于代码维护有的项目eslint没有用起来,没有起到规范代码的作用,导致出现一些基础代码…

RT-DETR优化策略:轻量级Backbone改进 | 高效模型 (Efficient MOdel, EMO),现代倒残差移动模块设计|ICCV2023

🚀🚀🚀本文改进:面向移动端的轻量化网络模型——EMO,它能够以相对较低的参数和 FLOPs 超越了基于 CNN/Transformer 的 SOTA 模型,支持四个版本EMO_1M, EMO_2M, EMO_5M, EMO_6M,参数量如下,相对于自带的rtdetr-l、rtdetr-x有很大提升 layersparametersgradientsEMO_1…

MySQL-事务

什么是事务 事务是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。 事务的特性 (ACID) 原子性(Atomicity):事务是不…

C_11微机原理

一、单项选择题(本大题共 15 小题,每小题 3分,共45分。在每小题给出的四个备选项中,选出一个正确的答案。) .EXE 文件产生在()之后。 A.汇编 B. 编辑 C.用软件转换 D.连接 2,十进制-61的8位二进…

创芯科技USB_CAN【库文件】

只用到【只收】【只发】功能 23.11.18 using help; //using Models; using System; using System.Collections.Generic; using System.Linq; using System.Net.NetworkInformation; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using Sys…

MybatisPlus学习

一.快速入门 1.相关数据库创建 CREATE TABLE USER(id BIGINT(20) NOT NULL COMMENT 主键ID,NAME VARCHAR(30) NULL DEFAULT NULL COMMENT 姓名,age INT(11) NULL DEFAULT NULL COMMENT 年龄,email VARCHAR(50) NULL DEFAULT NULL COMMENT 邮箱,PRIMARY KEY (id));​​INSERT I…

后端返回 date 时间日期格式为 UTC 格式字符串,形如 2022-08-11T10:50:31.050+00:00前端如何修改为yyyy-mm-dd

在不指定任何特殊配置的情况下,返回的 date 类型的字段会自动转成 UTC 格式字符串,形如 2022-08-11T10:50:31.05000:00。 前端如何处理? vue举例 utils 下新建 mixins.js文件 // minins.js文件 import Vue from "vue"; import {…

MidJourney笔记(1)-入门

注册 MidJourney注册和使用方式,有点特别。在介绍注册之前,需要给大家先介绍Discord。 Discord是一家游戏聊天应用与社区,在国内用的人相对比较少,在国外用得比较多。 那MidJourney和Discord有什么关系呢? MidJourney是搭建在Discord上的一个人工智能程序,通过在Discord添…

《洛谷深入浅出基础篇》——P3405 citis and state ——哈希表

上链接:P3405 [USACO16DEC] Cities and States S - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)https://www.luogu.com.cn/problem/P3405 上题干: 题目描述 Farmer John 有若干头奶牛。为了训练奶牛们的智力,Farmer John 在谷仓的墙上放了一…

Spring对事务的实现

Spring对事务的支持 事务概述事务的四个处理过程事务的四个特性 引入事务场景Spring实现事务的两种方式声明式事务之注解实现方式 事务概述 在一个业务流程当中,通常需要多条DML(insert delete update)语句共同联合才能完成,这多…

若依启动步骤

1.创建数据库 2.启动redis 3.改后端的数据库连接配置 4.配置redis redis的地址:cmd中ipconfig命令查看 6.启动后端:如下 7.启动前端ruoyi-ui中 先运行npm install,再npm run dev。项目就启动成功了。 用户名:admin 密码&#x…

【2022改良版】学法减分助手PRO小程序源码

【2022改良版】学法减分助手PRO小程序源码 ,交管推出个学法减分,每个驾驶员可以把被扣的6分,以看视频答题的形式学习回来,然后答题这个一共二十道题每道题60秒, 有好多人不会,用咱们的小程序就可以模拟练习…

计算机视觉:驾驶员疲劳检测

目录 前言 关键点讲解 代码详解 结果展示 改进方向(打哈欠检测疲劳方法) 改进方向(点头检测疲劳) GUI界面设计展示 前言 上次博客我们讲到了如何定位人脸,并且在人脸上进行关键点定位。其中包括5点定位和68点定…

交换机的工作原理

局域网交换技术是数据链路层上的技术,就是转发数据帧。在数据通信中,所有交换设备都执行两个基本操作: 交换数据帧生成并维护交换地址表 交换数据帧 交换机根据数据帧的MAC地址(物理地址)进行数据帧的转发操作。交换…

Stable Diffusion 入门

Stable Diffusion 入门 简介 稳定扩散(Stable Diffusion)是一种用于解决基于图论的问题的算法。在许多实际场景中,我们需要对图中的节点进行扩散,以便发现节点之间的关联性和信息传播路径。稳定扩散算法通过模拟节点之间的信息传…

二、程序员指南:数据平面开发套件

MEMPOOL库 内存池是固定大小对象的分配器。在DPDK中,它由名称标识,并使用环形结构来存储空闲对象。它提供一些其他可选服务,例如每个核心的对象缓存和一个对齐辅助工具,以确保对象填充以将它们均匀分布在所有DRAM或DDR3通道上。 …

C# public和internal的区别

在C#中,internal 和 public 是访问修饰符,它们控制着类和类成员的可访问性。 Public public 是最常用的访问修饰符。如果一个类或类成员被声明为 public,那么它可以从任何其他类或者是该类的实例访问到。换句话说,它没有任何访问…

LINUX入门篇【6】----第一个LINUX小程序---进度条及相关知识讲解

前言: 本篇我们将开始尝试构建我们的第一个LINUX的小程序----进度条作为一个十分常见的程序,在我们之后的工程实践中也是需要多次运用,但是介于我们目前还没有去学习网络等方面的知识,没法独立的去利用程序去下载一个真正的程序&…

JAVA基础12:字符串(上)

1.API 1)API概述 API(Application Programming Interface):应用程序编程接口 编写一个机器人程序去控制机器人踢足球,程序需要向机器人发出向前跑、向后跑、射门、抢球等各种命令。机器人厂商一定会提供用于控制机器人的接口类,这些类中定…