首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在textview中绘制环绕文本长度的背景色?

在TextView中绘制环绕文本长度的背景色可以通过使用SpannableString和LeadingMarginSpan来实现。下面是一个示例代码:

代码语言:java
复制
// 创建一个SpannableString对象
SpannableString spannableString = new SpannableString("这是一段需要绘制背景色的文本");

// 创建一个LeadingMarginSpan对象,设置缩进距离和背景色
LeadingMarginSpan leadingMarginSpan = new LeadingMarginSpan.Standard(0, 50); // 第一个参数为缩进距离,第二个参数为背景色

// 将LeadingMarginSpan应用到SpannableString中的指定范围
spannableString.setSpan(leadingMarginSpan, 0, spannableString.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);

// 将SpannableString设置到TextView中
textView.setText(spannableString);

上述代码中,我们首先创建了一个SpannableString对象,然后创建了一个LeadingMarginSpan对象,并设置了缩进距离和背景色。接着,我们将LeadingMarginSpan应用到SpannableString中的整个范围,最后将SpannableString设置到TextView中即可。

这样,TextView中的文本就会被绘制在指定的背景色下,并且背景色的长度会根据文本的长度自动调整。

这种方法适用于需要在TextView中绘制环绕文本长度的背景色的场景,比如在文章中突出显示某个关键词或者段落。腾讯云相关产品中,可以使用云函数(SCF)和云开发(TCB)等产品来实现类似的功能。具体产品介绍和使用方法可以参考以下链接:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

TextView

文本控件 显示富文本(URL、不同大小、字体、颜色文本) 在TextView预定义了一些类似HTML标签(不区分大小写),通过这些标签,我们可以使TextView控件显示不同颜色、大小、字体文字...在Android,Span表示一段文本效果,例如链接形式,图像,带颜色文本等。 所有的Span类都在android.text.style包。...控件 textView.setText(s); BackgroundColorSpan只能够设置文字背景色,为了更加通用,自定义一个ColorSpan类,使其能够同时设置文字颜色和背景色(android.text.style.ForegroundColorSpan...="@string/link_text" ---- 带边框TextView 两种方式: 编写一个继承TextView自定义控件,重写onDraw()绘制边框 使用9-patch(*.9.png)格式图像作为...---- 设置行间距 如果TextView控件显示了多行文本,会有一个默认行间距。

1.6K20

使用CSS 3创建不规则图形

文章我们将阐述如何使用 CSS创建不规则图形,实现不规则文本布局。学会如何创建不规则图形之后,你就可以发挥想象力,创建唯美的CSS页面了,下图既是使用该技术创建《爱丽丝梦游仙境》效果图: ?...设置自定义图形背景色 应用了自定义图形,它盒模型仍然存在,其它传统样式设置将作用于盒模型范围。例如,下面这个例子, 我们仅仅想创建一个浮动圆形,并设置这个圆形背景色。...那么,我们应该怎样设置圆形背景色呢?这就引出了一个新CSS样式: clip-path 。clip-path 用于限制当前样式作用范围。在下面的例子你将看到它使用方法。...实例-使用shape-outside 创建环绕于自定义形状浮动文本 我们从一个简单例子开始。在实例我们将创建一个自定义图形,并且内置文本流,最终效果图如下(文章末尾提供实例下载链接): ?...例子我们拥有两个容器,用于设置自定义形状和嵌套文本内容。

2.6K100
  • 自定义View | 基础概述 & 自定义TextView实战 & 基于源码分析自定义View继承自ViewGroup时无法正常绘制问题

    ListView,RecyclerView,ScrollView测量子View时候 给就是UNSPECIFIED; EXACTLY :一个确定值, 比如在布局 layout_width...与 字体长度、大小 有关 用画笔来测量 Rect bounds = new Rect(); //获取文本 Rect mPaint.getTextBounds...、或者其他方法, 通过setBackgroundColor(Color.TRANSPARENT); 指定一个透明背景或者其他默认背景色即可; 思路3 —— 从根源解决: 调用ViewsetWillNotDraw...); // 获取文本 有时候可能会找不到我们自定义属性 TextView_lwpMaxLength,这个时候Rebuild一下,或者重启AS即可 mText = (String...与 字体长度、大小 有关 用画笔来测量 Rect bounds = new Rect(); //获取文本 Rect mPaint.getTextBounds

    1.1K30

    真·富文本编辑器演进之路-Span开胃菜

    Span会导致TextView重新测量文本,以实现正确布局和渲染,例如,更改文本大小可能会导致字词显示在不同行上。...所以需要触发重新测量、重新计算文本布局,以及重新绘制文本。...SpanWatcher继承自NoCopySpan,在TextViewsetText方法,会基于传入文本创建一个新Spannable对象,在这个过程SpanWatcher不会被复制到新Spannable...= stop,那么start表示选择过程不变光标,stop表示变化光标 Span最佳实践 为现有Text创建Span 当TextView调用setText之后,TextView文本将变为不可变类型...ReplacementSpandraw函数会在TextView绘制时调用,我们可以借助其返回这些参数来帮助我们进行绘制 下面这个代码,就演示了ReplacementSpan基本使用方式。

    2.5K20

    AndroidTextview文字设置不同颜色、下划线、加粗、超链接

    添加各种格式或者称样式(Span),将原来String以不同样式显示出来,比如在原来String上加下划线、加背景色、改变字体 颜色、用图片把指定文字给替换掉,加超链接等等。...注意:如果这些额外信息能被所用方式支持,比如将SpannableString传给TextView;也有对这些额外信息不支持,比如自定义viewCanvas绘制 文字,对于不支持情况,SpannableString...背景色 ClickableSpan 点击事件 ForegroundColorSpan 文本颜色(前景色) MaskFilterSpan 修饰效果,模糊(BlurMaskFilter)浮雕(EmbossMaskFilter...static Spanned fromHtml(String source) 从Html字符串返回可显示样式文本。...Spanned fromHtml(String source, Html.ImageGetter imageGetter, Html.TagHandler tagHandler) 从Html字符串返回可显示样式文本

    4.8K21

    自定义角标库

    (2)环绕方式: a.固定模式,角标会显示在View固定位置,和View宽高有关,不会随文本在View位置改变而改变: ?...b.环绕模式:角标会一直环绕文本四周,与View宽高没有直接关系: ? c.垂直环绕:当Viewgravity=center_vertical时,推荐使用该模式。...: 一般角标颜色,形状之类都是会想到和加入,但是一些其他特性,我们可以从实际开发慢慢归纳进来,这样自定义控件适应性才会更高. a.首先,TetxView角标是用最多,比如导航栏和选项卡...View,所以加入属性 ttv_type ,其中固定和环绕两种模式可以应付大多数需求; d:还可以看到钱包前面有个图标,实际上可以给TextView设置Drawable,这样一整行其实就一个TextView...控件,所以在计算小红点位置时,还考虑了Drawable大小; e:最后,小红点和文本距离需要可以自由调整,那就需要这个环绕间距属性.

    1.9K70

    CoreText实现图文混排之尺寸估算及文本选择

    CoreText实现图文混排之尺寸估算及文本选择 系列文章: CoreText实现图文混排 CoreText实现图文混排之点击事件 CoreText实现图文混排之文字环绕及点击算法 CoreText实现图文混排之尺寸估算及文本选择...废话这么多,在这进入主题,所以今天博客你将会看到如下内容: CoreText做排版时如何进行尺寸估算 如何实现TextView类似的文本选择效果 CoreText一些API中一些已知bug ---...stringRange : 需要参与计算尺寸文本范围。(比如长度为200字符串,而你仅想计算前100个字估算尺寸的话,可以通过这个参数调整)。...及文本长度很长,在约束尺寸内无法完整绘制时,fitRange会被赋值为约束内可展示范围。...所以说通过这个方法,我们可以像使用[UIView sizeThatFits:size]这个方法一样计算出一段文本预估尺寸,但是问题还没有这么简单到此结束: 如果想要绘制文本,存在排除区域的话,只能通过

    95420

    Android基础_2 Activity线性布局和表格布局

    在activity布局,线性布局和表格布局是最简单,这次分别从线性布局,表格布局以及线性布局和表格混合布局做了实验,实验只需要编写 相应xml代码,java代码不需要更改,因为我们这里只是练习...android:gravity指控件内文字相对于控件本身方向属性,长度为dip,与像素独立长度。     ...android:background为控件内文字颜色背景色,颜色采用rgb时前面需用”#”号.     android:textSize为文本大小,单位为pt,即镑。     ...android:gravity指控件内文字相对于控件本身方向属性,长度为dip,与像素独立长度。...android:background为控件内文字颜色背景色,颜色采用rgb时前面需用”#”号. android:textSize为文本大小,单位为pt,即镑。

    68820

    腾讯开源超实用UI轮子库,我是轮子搬运工

    通过它可以生成一个带标题、文本消息、按钮对话框。 ConfirmMessageDialogBuilder: 带 Checkbox 消息确认框 Builder。...QMUIQQFaceCompiler QMUIQQFaceView 内容解析器,将文本内容解析成 QMUIQQFaceView 想要数据格式。...dp 与 px 数值相互转化。 QMUIDrawableHelper 快速绘制一张指定大小、颜色、边框图片,支持形状为圆角矩形和圆形。 快速绘制一张带上分隔线或下分隔线图片。...快速绘制一张可带圆角渐变图片。 将当前图片颜色换成另一个颜色。 将两张图片叠加后生成一张新图片。 对某个 View 截图生成图片。...提供多个常用工具方法,获取状态栏高度、判断当前是否全屏等等。

    4.8K30

    Canvas学习笔记,记录使用过程遇到一些问题

    允许值: "nonzero": 非零环绕规则,默认规则。 "evenodd": 奇偶环绕规则。 将填充规则设置为evenodd,绘制结果会变为下面这样,通过这种方式可以实现反向裁剪。..." context.fillStyle = "rgba(255,255,255,1)"; //背景色 context.fillRect(x, y, w, h); //画圆 context.restore...该对象可以用于到其他canvas绘制。 9.矩阵变换 向量是有长度及方向量,一般由多个标量(scalar,即单纯数字)组合而成。...比如由两个标量组合而成二维向量,可以表示二维空间(平面)中有长度及方向量。...由三个标量组成三维向量,可以表示三维空间中具有长度及方向量; 矩阵 平移 旋转 缩放 参考:https://www.modb.pro/db/418935 10.touchmove

    93121

    Paint基本使用

    (new DashPathEffect(new float[]{20,10,50,100},15)); intervals[]:表示组成虚线各个线段长度;整条虚线就是由intervals[]这些基本线段循环组成...比如,我们定义new float[] {20,10};那这个虚线段就是由两段线段组成,第一个可见线段长为20,每二个线段不可见,长度为10; phase: 开始绘制偏移值 ..... 11.setXfermode...设置MaskFilter,可以用不同MaskFilter实现滤镜效果,滤化,立体等 13.setColorFilter(ColorFilter colorfilter); 设置颜色过滤器,可以在绘制颜色时实现不用颜色变换效果...、右边还是局。...setSubpixelText(boolean subpixelText) 固定几个范围:320*480,480*800,720*1280,1080*1920等等;那么如何在同样分辨率显示器增强显示清晰度呢

    1K20

    Android 测量文字宽度实例方法

    在实现这一功能时发现了原来在 Android 测量文本长度,或者说宽度可以分两种情况: 1、测量绝对文本长度 2、测量相对文本长度 首先必须声明这两个概念是笔者自己定义,因为我实在找不着更贴切词句去形容它们了...例如:自定义View时通过Canvas绘制出来文本; 而相对文本在使用上就广泛很多了。例如直接用 TextView 展示文本、网页上文本、手机短信内容文本等。...这篇博文,就来记录一下这两种文本测量长度方法。 1、绝对文本长度测量 绝对文本为了避免被系统配置影响到,通常都不使用 Android 自带控件来绘制文本。...TextView 配置,却可以动态地根据系统字体设置来测量文本长度。...以上就是 Android 应用开发关于文本长度测量两种方法,各位同学根据自己实际应用场景来选择使用即可。感谢大家学习和对ZaLou.Cn支持。

    2.9K10

    学习|Android实现进度条按钮功能(kotlin)

    本文长度为1029字,预计阅读4分钟 Android实现按钮进度条 前面几章做了检测TTS及怎么样进度条下载文章,原想结合几个知识点做一个实战操作,模仿应用宝等手机助手那种列表下载方式,计划中发现有一环是需要实现个一按钮进度条方式...划重点 我这里实现是一个简单方式,可以在这个基础上加上自己一些新设计,比如说加载进度条时颜色和背景色重设,按钮在不同状态下不同颜色,进度条状态监听等方法实现。...canvas.drawRoundRect(oval, corner.toFloat(), corner.toFloat(), paint) } /*** * 绘制文本...微卡智享 activity_main.xml 在主窗体布局文件可以直接就加入我们刚才已经生成ProgressButton <?...代码我们直接就调用到ProgressButton,然后重写了onProgressButtonClickListerner事件,事件我们开启了一个线程,做了一1到100循环,调用到效果就是我们文章开头那个动图效果

    1.7K20

    Android性能优化(二)之布局优化面面观

    那么我们结合产品需求(任何不结合具体场景优化都是耍流氓): 去掉每行RelativeLayout背景色; 去掉每行TextView背景色; 备注:一个容易忽略点是我们Activity使用Theme...可能会默认加上背景色,不需要情况下可以去掉。...去掉背景色之后再看一下Overdraw; ? 对比一下优化后布局颜色,可以看出Overdraw降到了可以接受程度。 备注:有些过度绘制都是不可避免,需要结合具体布局场景具体分析。...,为了减少该段区域执行时间,我们可以减少屏幕上图片数量或者是缩小图片大小; Draw:表示测量和绘制视图列表所需要时间,蓝色线条越高表示每一帧需要更新很多视图,或者ViewonDraw方法做了耗时操作...一旦这里执行时间过长,就需要检查是不是使用了非官方动画工具或者是检查动画执行过程是不是触发了读写操作等等; Input Handling:表示系统处理输入事件所耗费时间,粗略等于对事件处理方法所执行时间

    89930

    使用Span实现各种酷炫效果

    前一段时间一直在做富文本展示和文本处理,主要用到了Html.fromHtml()实现加载网页,但实现整段文本某些特殊个别文字点击,改背景色、前景色等效果,就用到了我们今天要用到Span这个类。...关于加载网页或个别文字点击效果,可以阅读我之前写一篇文章——用TextView实现富文本展示,点击断句和语音播报。...今天会简单介绍几个Span基本用法,也会分享一些比较酷炫使用方法: 设置字体颜色 改变字体背景色文本添加下划线 给文本加边框 彩虹色文字 彩虹色字体渐变动画 打字效果展示文本 ---- 1、设置字体颜色...、获取绘制区域大小、在draw绘制矩形边框。...7、文本实现打字效果 先看看Span写法: ?

    1.9K41
    领券