android 里面Canvas绘制文本的方法
来源:互联网 发布:支付宝mac客户端下载 编辑:程序博客网 时间:2024/05/19 17:57
在做项目的时候总是会遇到一些要再图片上叠加文字的需求,这个问题的解决方式有很多种,通过布局来实现:一个ImageView和一个TextView堆放好就行,或者直接用button,background为图片,text就是我要放的的文字,这样也可以也,但是最近遇到了一个这些方式解决不了的问题:在使用FAB时要在图标上面添加数字,要说这个问题其实也是个简单的问题,解决的话就是通过Canvas在bitmap上面drawText就可以了,但是Canvas在drawText时,画上去的text不是我要的效果,一番google,问题解决,记录下本次学到的东西.
实现的效果
/** * Class that describes the various metrics for a font at a given text size. * Remember, Y values increase going down, so those values will be positive, * and values that measure distances going up will be negative. This class * is returned by getFontMetrics(). */ public static class FontMetrics { /** * The maximum distance above the baseline for the tallest glyph in * the font at a given text size. */ public float top; /** * The recommended distance above the baseline for singled spaced text. */ public float ascent; /** * The recommended distance below the baseline for singled spaced text. */ public float descent; /** * The maximum distance below the baseline for the lowest glyph in * the font at a given text size. */ public float bottom; /** * The recommended additional space to add between lines of text. */ public float leading; }
FontMetrics是Paint的内部类
Canvas之drawText
Canvas类里面有很多drawText的重载函数
还有几个drawTextOnPath,drawTextRun函数,他们的具体实现都是调用的native函数具体实现不明,这些我也用不到.我要的是如何控制字体绘制.
第一张图片和FontMetrics相对应,FontMetrics是android对于字体的描述类,其中的参数在绘制文本时非常重要,具体参数的介绍上面也有,需要注意的是位于基准线(baseline)之上的top、ascent均为负值.
上面那么多的drawText函数,其实仔细看里面关于控制绘制文本位置的参数始终不变,两个float参数,一个是从x轴的何处开始绘制,另一个参数是绘制这一行文字的基准线(baseline)坐标,理解了最上面的图,我们就可以随心所欲的控制文本出现的地方
0 0
- android 里面Canvas绘制文本的方法
- Android Canvas Paint绘制文本
- 使用Canvas的drawTextOnPath方法实现沿着Path绘制文本
- Android 绘制文本的一些方法
- Canvas中绘制文本的FontMetrics
- Canvas文本绘制的浏览器差异
- html5-canvas的绘制文本自动换行
- Canvas:绘制文本
- Android 使用Canvas中的drawBitmap方法绘制拉伸的图片
- android中canvas.drawText参数的介绍以及绘制一个文本居中的案例
- android中canvas.drawText参数的介绍以及绘制一个文本居中的案例
- android中canvas.drawText参数的介绍以及绘制一个文本居中的案例
- android中canvas.drawText参数的介绍以及绘制一个文本居中的案例
- 【HTML】Canvas(2)-绘制文本
- Path绘制文本canvas.drawTextOnPath
- canvas绘制文本 圆弧 详解
- Canvas绘制Text文本居中
- Canvas的drawText绘制文本不自动换行的解决
- virtualbox centos6.7 主机和虚拟机之间通信设置
- 关于windows下虚拟机系统与真实机文件共享的问题 ---基于VMware Workstation
- 简说——Ajax异步请求
- CXF wsdl2java stub how to add header
- ios开发之UI基础--应用管理xib-九宫格布局
- android 里面Canvas绘制文本的方法
- Find Minimum in Rotated Sorted Array
- 02列表
- SplashScreen代码分析
- mysql 日志监控
- LightOJ 1176 - Getting a T-shirt【最大流】
- 基本类型、操作符总结
- Codeforces 318 div2.D Bear and Blocks(dp,贪心)
- JAVA并发编程9_正确关闭线程