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)相关推荐

  1. QPainter绘制文本 二

    先从最简单任务开始:在 widget 的左上角(0, 0)处绘制字符串 jEh. void MainWidget::paintEvent(QPaintEvent *) {QPainter painte ...

  2. android多行文字正中间显示,Android自定义View五(绘制文本大小、多行多列居中)...

    一.绘制文本 在Canvas中绘制文本,使用前面文章的坐标系 1.drawText的几种方法 public void drawText (String text, float x, float y, ...

  3. Android深入理解文字绘制:FontMetrics字体测量及其TextPaint介绍

    文章目录 TextPaint介绍 一.FontMetrics 1.1 理论知识 1.2 代码验证 1.3 fontMetrics中的变量和文字的size.typeface有关 1.4 绘制居中屏幕的文 ...

  4. html像素绘制文字,HTML5 - Canvas的使用样例10(绘制文本)

    1,设置绘图上下文的font属性 (1)设置字体大小(像素)和字体名称 context.font = "22px Arial"; (2)为了适应多个浏览器,字体名字可以多列几种 c ...

  5. html语言填充没有只有描边,HTML5 Canvas笔记——交互绘制文本(描边、填充、阴影、渐变填充、图案填充、文本的属性设置)...

    (1)文本的描边.填充.阴影 (2)文本的渐变填充 (3)文本的图案填充 (4)文本的属性设置及效果呈现 交互绘制文本.html 交互绘制文本 body { background: #eeeeee; ...

  6. python PyQt5中文教程☞【第十节】PyQt5绘图(绘制文本drawText()、画点drawPoints()、设置颜色、QPen(画笔)绘制线条、QBrush(笔刷)绘制纹理

    引用文章:http://code.py40.com/pyqt5/32.html 文章目录 绘制文本 画点 PyQt5颜色 QPen(画笔) QBrush(笔刷) 总结:一发现有事件触发就会更新QWid ...

  7. html绘图环境,HTML_HTML5 在canvas中绘制文本附效果图,一、绘制文本 在绘图环境中提 - phpStudy...

    HTML5 在canvas中绘制文本附效果图 一.绘制文本 在绘图环境中提供了两种方法在canvas中绘制文本. strokeText(text,x,y) : 在(x,y)处绘制空心的文本. fill ...

  8. 精通Android自定义View(八)绘制篇Canvas分析之绘制文本

    1 简述 绘制文字分为三种应用场景: 情况1:指定文本开始的位置 即指定文本基线位置 基线x默认在字符串左侧,基线y默认在字符串下方 情况2:指定每个文字的位置 情况3:指定路径,并根据路径绘制文字 ...

  9. HTML5 Canvas中绘制文本

    绘制文本 画布中不仅可以绘制图形,还可以绘制文本.绘制文本,既可以使用填充方法,也可以使用勾勒方法: fillText(text, x, y, [maxWidth]) strokeText(text, ...

最新文章

  1. Swagger 生成 PHP restful API 接口文档
  2. 为什么我不建议你用阿里巴巴Java规范,而使用 Google Guava 编程?
  3. aFleX脚本常见错误
  4. GTK+图形化应用程序开发学习笔记
  5. Netty傻瓜教程(一):Netty初探,只写个服务端也能工作
  6. MySQL笔记7:sum和count用法总结
  7. 第7周实践项目2 队列的链式存储结构及其基本运算的实现
  8. SIFT中LoG和DoG比较
  9. 冷板式液冷--液冷服务器(6-2)
  10. 政府公开数据可视化_公开演讲如何帮助您设计更好的数据可视化
  11. JS前端常用工具方法
  12. IPWorks V6 Sax CommStudio Fall 2005 破解
  13. php5的程序如何安装在php7,centos安装php5和php7,并在apache里同时使用
  14. 微信驾校服务平台功能开发
  15. etc fstab 详解linux,/etc/fstab文件详解
  16. 测量string变量长度函数_C语言中测试字符串长度的函数
  17. 城镇化率与世界平均水平相当 质量不高问题突出
  18. 华为牛人在华为工作十年的感悟!
  19. 安装好office套件以后,右键新建中没有Word、Excel、PPT等怎么办
  20. 《每天五分钟冲击python基础之函数参数》(十八)

热门文章

  1. 卷积输出的记录,为什么是([3, 0, 1, 2])
  2. Nexus-vPC与FHRP
  3. asp.net core 使用identityServer4的密码模式来进行身份认证(2) 认证授权原理
  4. IIS应用池保持激活工具开发
  5. Oracle一个中文汉字占用几个字节
  6. Android编译系统入门(二)
  7. Combobox 控件绑定数据
  8. so文件成品评论【整理】
  9. TJU Problem 2857 Digit Sorting
  10. syntax error: unexpected end of file