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

Android canvas drawText -如何底部对齐文本?

在Android中,要实现底部对齐文本的效果,可以使用Canvas的drawText方法,并结合Paint的相关属性进行设置。

首先,创建一个Paint对象,并设置其对齐方式为底部对齐:

代码语言:java
复制
Paint paint = new Paint();
paint.setTextAlign(Paint.Align.LEFT);
paint.setTextSize(textSize);
paint.setColor(textColor);
paint.setStyle(Paint.Style.FILL);
paint.setAntiAlias(true);
paint.setTypeface(Typeface.DEFAULT_BOLD);
paint.setTextAlign(Paint.Align.LEFT);

然后,计算文本的绘制位置,使其底部对齐:

代码语言:java
复制
Rect bounds = new Rect();
paint.getTextBounds(text, 0, text.length(), bounds);
float x = startX;
float y = startY - bounds.bottom;

最后,使用Canvas的drawText方法绘制文本:

代码语言:java
复制
canvas.drawText(text, x, y, paint);

这样就可以实现底部对齐文本的效果。

对于Android开发中的Canvas和绘制文本的更多详细信息,可以参考腾讯云的相关文档和示例代码:

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

相关·内容

Android CanvasdrawText()与文字居中方案详解

自定义View是绘制文本有三类方法 // 第一类 public void drawText (String text, float x, float y, Paint paint) public void...Paint.Style.FILL); paint.setStrokeWidth(12); paint.setTextSize(100); String text="测试:my text"; canvas.drawText...右对齐-right (为了使文字完整,上面调整了下x,y的值) 从上面三种情况得出结论,x所对应的竖线: 左对齐 — 文字的左边界 居中对齐 — 文字的中心位置 右对齐 — 文字的左边界 y对应的横线并不是文字的下边界...红色的Baseline是基准线,紫色的Top是文字的最顶部,也就是在drawText()中指定的x所对应,橙色的Bottom是文字的底部。 拿这些值如何获取呢?...fontMetrics.bottom - fontMetrics.top)/2 - fontMetrics.bottom; float baseline=rectF.centerY()+distance; canvas.drawText

1.4K10

Android 在任意位置绘制文本

如果直接继承View,onDraw时使用Canvas#drawText实现文本绘制,省去TextView的大量额外计算,效率则会提升很多。...本文将通过这个例子,来讲述Android如何灵活地在想要的位置绘制文本。...); // 自定义方法,画一条垂直线运行结果如下:[6638v2u7mq.png]由此看到,(x,y)是文本区域左下角的一个点,x值是文本区域的左边沿,y水平线对齐"a" "f" "8" 的底部,但...中文字符维基百科说东亚字体无基线,也无升部和降部,那Android里中文的绘制是怎样的一种情况呢?...总结使用Canvas#drawText进行文本绘制时,参考点(x,y)的x坐标根据画笔的对齐方式而定,可以通过Paint#setTextAlign设置左、中、右对齐。而y坐标是基线的y坐标。

2.3K11

Android 应用开发】Canvas 精准绘制文字 ( 文本边界坐标解析 | 绘图位置 )

文章目录 一、文本边界坐标解析 二、绘图位置 一、文本边界坐标解析 ---- 在上一篇博客 【Android 应用开发】Canvas 精准绘制文字 ( 测量文本真实边界 | 将文本中心点与给定中心点对齐...中获取的坐标值示例 : left = 4 , top = -31 , right = 28 , bottom = 0 ; 上述坐标是相对于 下图中的 (0, 0) 原点坐标系的值 ; 下图中的原点位置 , 就是调用 Canvas...的 drawText 方法 , 传入的 x 值和 基线值 ; 下图中的 绿色矩形框是 Canvas 的绘图区域 , 橙色矩形框是 Canvas 绘制的文本的实际区域 ; 绘图区域 包含 文本实际占用区域...right}{2} ; top 值是 基线值 - 基线距离文本顶部的值 , 基线值是 0 , 一般都是负数 , 这里是 -31 ; botttom 值是 基线距离文本底部值 - 基线值 , 基线值是...0 , 正数 , 负数 , 0 都有可能 , 这里是 0 ; 一般是正数或 0 , 负数不常见 ; 二、绘图位置 ---- 使用 CanvasdrawText 方法绘制文字 , 传入 ( x

1.8K10

Android绘图之Paint的使用方法详解

前言 大家都知道在Android中,自定义控件是一个非常重要的知识点,而自定义控件对Android开发者是一个难点,考验开发人员对View原理的理解,对于继承View的自定义控件,一般都需要重写onDraw...文本绘制 上文中,介绍了Paint画笔,和绘制了一些图形。但是介绍Paint的时候,我们知道它可以绘制图形,文本和bitmap,所以Paint是非常强大的了,我们看下Paint是如何绘制文本的。...加载自定义字体 Typeface.create(familyName, style) 文字倾斜 mPaint.setTextSkewX(-0.25f); 文字倾斜默认为0,官方推荐的-0.25f是斜体 文本对齐方式...绘制文本 绘制文本时,还有一个很重要的知识点就是基线的确定 DrawText 基线的确定 在自定义控件的时候,有时候会用到DrawText 方法....图中的 五角星 所在的线 就是基线 BaseLine,那么如何确定基线的x,y坐标呢?

1.7K30

HenCoder Android 开发进阶:自定义 View 1-3 文字的绘制

之前的内容在这里: HenCoder Android 开发进阶 自定义 View 1-1 绘制基础 HenCoder Android 开发进阶 自定义 View 1-2 Paint 详解 如果你没听说过...要让不同的文字并排显示的时候整体看起来稳当,需要让它们上下对齐。但这个对齐的方式,不能是简单的「底部对齐」或「顶部对齐」或「中间对齐」,而应该是一种类似于「重心对齐」的方式。...这个也是使用 Canvas 来进行文字的绘制,不过并不是使用 Canvas 的方法。 Canvas.drawText() 只能绘制单行的文字,而不能换行。...ascent / descent: 上图中绿色和橙色的线,它们的作用是限制普通字符的顶部和底部范围。...top / bottom: 上图中蓝色和红色的线,它们的作用是限制所有字形( glyph )的顶部和底部范围。

1.2K20

Android自定义系列——5.Canvas图片文字绘制

在AndroidMenifest文件中application节点下添上 android:hardwareAccelerated=”false”以关闭整个应用的硬件加速。...绘制文字也是需要画笔的,而且文字的大小,颜色,字体,对齐方式都是由画笔控制的。...设置或清除字体样式 样式 setStyle 填充(FILL),描边(STROKE),填充加描边(FILL_AND_STROKE) 对齐 setTextAlign 左对齐(LEFT),居中对齐(CENTER...),右对齐(RIGHT) 测量 measureText 测量文本大小(注意,请在设置完文本各项参数后调用) 为了绘制文本,我们先创建一个文本画笔: Paint textPaint = new Paint...其中x,y两个参数是指定文本绘制两个基线,示例: // 文本(要绘制的内容) String str = "ABCDEFG"; // 参数分别为 (文本 基线x 基线y 画笔) canvas.drawText

66240

Android自定义View实现圆弧进度效果

前言:Android开发中,自定义View实现自己想要的效果已成为一项必备的技能,当然自定义View也是Android开发中比较难的部分,涉及到的知识有Canvas(画布),Paint(画笔)等,自定义控件分为三种...(); //绘制弧度 drawArc(canvas); //绘制文本 drawText(canvas); } 注:这里的paint初始化我放在了onDraw方法中进行的,当然你也可以放在有三个参数的构造方法中初始化...mTextPaint=new Paint(); mTextPaint.setAntiAlias(true); mTextPaint.setColor(Color.parseColor("#FF4A40")); //设置文本对齐方式...mTextPaint=new Paint(); mTextPaint.setAntiAlias(true); mTextPaint.setColor(Color.parseColor("#FF4A40")); //设置文本对齐方式...//绘制弧度 drawArc(canvas); //绘制文本 drawText(canvas); } /** * 绘制文本 * @param canvas */ private void drawText

1K30

Android 应用开发】Canvas 精准绘制文字 ( 测量文本真实边界 | 将文本中心点与给定中心点对齐 )

文章目录 一、测量文本真实边界 二、将文本中心点与给定中心点对齐 一、测量文本真实边界 ---- Paint.getTextBounds() 函数原型如下 : public class Paint {..., 是使用 Paint 在 Canvas 中绘制的文本的真实占用区域 , 如下图红色矩形框所在的区域 , 与文本的相对坐标 , 下图的红色矩形框的 右下角是 ( 0 , 0 ) 坐标位置 ; Rect..., bottom = 0 , 说明文本底部就是基线 ; 上述 Rect 的坐标轴是这么算的 , x 轴是文本的基线轴 , y 轴是绘图区域的左侧边界 ; 一定要确定两个概念 , 下图 红色矩形框 的区域...绘图区域 与 真实文本区域 的差异 , 就导致了 文字绘图 不准确 , 不好定位的问题 ; 二、将文本中心点与给定中心点对齐 ---- 给定中心点 ( x , y ) ; 绘制文本 , 使得 文本的中心点...与 给定的中心点对齐 ; 根据中心点位置 : 确定绘制文本的左侧位置 : x - (rect.left + rect.right) / 2 , 绘制的文本 , 是下图红色矩形框的位置 , 文本的位置是不确定的

1.2K20

如何canvas 渲染 Web Excel 富文本

在一些前端开发场景中,可能会遇到使用 canvas 来渲染文本,例如 web 表格应用,就是用 canvas 来渲染文本,如果大家去检查飞书、谷歌、石墨、腾讯表格可以发现它们都是用 canvas 来实现的...这篇文章就来讲解如何canvas 中渲染和排版富文本。在介绍之前可以先点击下面链接,体验下最终的效果。...富文本 了解了文本的自动换行,接下来再来看看如何实现 canvas文本渲染。在渲染之前我们首先定义好富文本的数据机构,如下所示。...总结 这篇文章主要讲解了如何使用 canvas 来渲染富文本和富文本的自动换行,原理是使用 measureText API 来测量每个字符的宽高,并且判断当前字符是不是属于同一个单词,如果超过长度则进行换行...这篇文章的中的计算代码都是没有经过性能优化的,如果渲染大量的数据可能性能很慢,下篇文章将讲解如何进行高性能的 canvas 渲染。 在线体验:

1.2K20
领券