前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >UGL之绘制文本

UGL之绘制文本

作者头像
Taishan3721
发布2020-02-26 13:34:46
8790
发布2020-02-26 13:34:46
举报
文章被收录于专栏:这里只有VxWorks这里只有VxWorks

欢迎关注VxWorks567

上次画了一条线,这次写一句话

首先,参考之前打开显示设备的操作,使用uglRegistryFind()找到字库引擎;然后使用uglFontFindString()找到想要的字体;使用uglFontCreate()创建本地字体;使用uglFontSet()将该字体告诉当前图形上下文;最后使用uglTextDraw()绘制文本

代码如下,不过5、6行

需要注意的几个细节

  • uglFontFindString()的参数pFontPriorityString支持的取值有pixelSize=xxx; faceName=xxx; familyName=xxx; italic; bold; mono; proportional;如果使用多个取值,需要用分号间隔。其中mono和proportional表示字符间距,它俩最多使用一个。每种字体支持的属性是不一定的,具体值要参考该字体的源文件。uglFontFindString()会在字库中找到最接近的字体,下面几种格式都是合法的
  • 一个App中可以创建多个不同的本地字体,绘制文本之前,通过uglFontSet()告诉GC就可以了
  • GC的前景色指的是字符中每个笔画所占像素的颜色;背景色是每个字符所占据的矩形区域的颜色
  • 如果没有给GC设置颜色,那么GC就会使用之前的值,而系统刚启动时,GC成员的初值都是0,因此就是黑色

还有几个相关函数

  • uglTextDraw()绘制文本时,字符默认对齐到BaseLine,大致是每个字符的左下角。而通常App中是需要对齐到左上角的,那可以使用uglFontDriverInfo()来设置整个字库绘制字符时的起始位置
  • 或者使用uglFontInfo()设置单个字体
  • 可以使用uglFontMetricsGet()查询字体的详细信息
  • 使用uglTextSizeGet()计算某段文本在使用某个字体时占据的空间,这样更便于计算uglTextDrawW()的位置
  • 如果要使用双字节编码的亚洲字体(例如中文),就要使用配套的uglTextSizeGetW()和uglTextDrawW

有点枯燥吧,动动手就有意思了!

我是泰山,专注VX 15年!

一起学习,共同进步!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-02-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 这里只有VxWorks 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档