androd之绘制文本(FontMetrics)
2019独角兽企业重金招聘Python工程师标准>>>
转自 :http://fonter.iteye.com/blog/474526
Canvas 作为绘制文本时,使用FontMetrics对象,计算位置的坐标。
它的思路和java.awt.FontMetrics的基本相同。
FontMetrics对象
它以四个基本坐标为基准,分别为:
・FontMetrics.top
・FontMetrics.ascent
・FontMetrics.descent
・FontMetrics.bottom
该图片将如下
Paint textPaint = new Paint( Paint.ANTI_ALIAS_FLAG);
textPaint.setTextSize( 35);
textPaint.setColor( Color.WHITE);// FontMetrics对象
FontMetrics fontMetrics = textPaint.getFontMetrics();String text = "abcdefghijklmnopqrstu";// 计算每一个坐标
float baseX = 0;
float baseY = 100;
float topY = baseY + fontMetrics.top;
float ascentY = baseY + fontMetrics.ascent;
float descentY = baseY + fontMetrics.descent;
float bottomY = baseY + fontMetrics.bottom;// 绘制文本
canvas.drawText( text, baseX, baseY, textPaint);// BaseLine描画
Paint baseLinePaint = new Paint( Paint.ANTI_ALIAS_FLAG);>
baseLinePaint.setColor( Color.RED);
canvas.drawLine(0, baseY, getWidth(), baseY, baseLinePaint);// Base描画
canvas.drawCircle( baseX, baseY, 5, baseLinePaint);// TopLine描画
Paint topLinePaint = new Paint( Paint.ANTI_ALIAS_FLAG);
topLinePaint.setColor( Color.LTGRAY);
canvas.drawLine(0, topY, getWidth(), topY, topLinePaint);// AscentLine描画
Paint ascentLinePaint = new Paint( Paint.ANTI_ALIAS_FLAG);
ascentLinePaint.setColor( Color.GREEN);
canvas.drawLine(0, ascentY, getWidth(), ascentY, ascentLinePaint);// DescentLine描画
Paint descentLinePaint = new Paint( Paint.ANTI_ALIAS_FLAG);
descentLinePaint.setColor( Color.YELLOW);
canvas.drawLine(0, descentY, getWidth(), descentY, descentLinePaint);// ButtomLine描画
Paint bottomLinePaint = new Paint( Paint.ANTI_ALIAS_FLAG);
bottomLinePaint.setColor( Color.MAGENTA);
canvas.drawLine(0, bottomY, getWidth(), bottomY, bottomLinePaint);
转载于:https://my.oschina.net/u/913208/blog/122330
androd之绘制文本(FontMetrics)相关推荐
- QPainter绘制文本 二
先从最简单任务开始:在 widget 的左上角(0, 0)处绘制字符串 jEh. void MainWidget::paintEvent(QPaintEvent *) {QPainter painte ...
- android多行文字正中间显示,Android自定义View五(绘制文本大小、多行多列居中)...
一.绘制文本 在Canvas中绘制文本,使用前面文章的坐标系 1.drawText的几种方法 public void drawText (String text, float x, float y, ...
- Android深入理解文字绘制:FontMetrics字体测量及其TextPaint介绍
文章目录 TextPaint介绍 一.FontMetrics 1.1 理论知识 1.2 代码验证 1.3 fontMetrics中的变量和文字的size.typeface有关 1.4 绘制居中屏幕的文 ...
- html像素绘制文字,HTML5 - Canvas的使用样例10(绘制文本)
1,设置绘图上下文的font属性 (1)设置字体大小(像素)和字体名称 context.font = "22px Arial"; (2)为了适应多个浏览器,字体名字可以多列几种 c ...
- html语言填充没有只有描边,HTML5 Canvas笔记——交互绘制文本(描边、填充、阴影、渐变填充、图案填充、文本的属性设置)...
(1)文本的描边.填充.阴影 (2)文本的渐变填充 (3)文本的图案填充 (4)文本的属性设置及效果呈现 交互绘制文本.html 交互绘制文本 body { background: #eeeeee; ...
- python PyQt5中文教程☞【第十节】PyQt5绘图(绘制文本drawText()、画点drawPoints()、设置颜色、QPen(画笔)绘制线条、QBrush(笔刷)绘制纹理
引用文章:http://code.py40.com/pyqt5/32.html 文章目录 绘制文本 画点 PyQt5颜色 QPen(画笔) QBrush(笔刷) 总结:一发现有事件触发就会更新QWid ...
- html绘图环境,HTML_HTML5 在canvas中绘制文本附效果图,一、绘制文本 在绘图环境中提 - phpStudy...
HTML5 在canvas中绘制文本附效果图 一.绘制文本 在绘图环境中提供了两种方法在canvas中绘制文本. strokeText(text,x,y) : 在(x,y)处绘制空心的文本. fill ...
- 精通Android自定义View(八)绘制篇Canvas分析之绘制文本
1 简述 绘制文字分为三种应用场景: 情况1:指定文本开始的位置 即指定文本基线位置 基线x默认在字符串左侧,基线y默认在字符串下方 情况2:指定每个文字的位置 情况3:指定路径,并根据路径绘制文字 ...
- HTML5 Canvas中绘制文本
绘制文本 画布中不仅可以绘制图形,还可以绘制文本.绘制文本,既可以使用填充方法,也可以使用勾勒方法: fillText(text, x, y, [maxWidth]) strokeText(text, ...
最新文章
- Swagger 生成 PHP restful API 接口文档
- 为什么我不建议你用阿里巴巴Java规范,而使用 Google Guava 编程?
- aFleX脚本常见错误
- GTK+图形化应用程序开发学习笔记
- Netty傻瓜教程(一):Netty初探,只写个服务端也能工作
- MySQL笔记7:sum和count用法总结
- 第7周实践项目2 队列的链式存储结构及其基本运算的实现
- SIFT中LoG和DoG比较
- 冷板式液冷--液冷服务器(6-2)
- 政府公开数据可视化_公开演讲如何帮助您设计更好的数据可视化
- JS前端常用工具方法
- IPWorks V6 Sax CommStudio Fall 2005 破解
- php5的程序如何安装在php7,centos安装php5和php7,并在apache里同时使用
- 微信驾校服务平台功能开发
- etc fstab 详解linux,/etc/fstab文件详解
- 测量string变量长度函数_C语言中测试字符串长度的函数
- 城镇化率与世界平均水平相当 质量不高问题突出
- 华为牛人在华为工作十年的感悟!
- 安装好office套件以后,右键新建中没有Word、Excel、PPT等怎么办
- 《每天五分钟冲击python基础之函数参数》(十八)