在图像是显示字体,Skia的api中就有,直接可以将文字显示出现。如下代码:
SkTypeface *font = SkTypeface::CreateFromFile("NotoSansHans-Regular.otf");if ( font ){ paint.setARGB(255, 255, 0, 0); paint.setTypeface( font ); paint.setTextSize(25); canvas.drawText("平凡之路!", 14, 0, 25, paint);}
显示效果(字号为25):
除了上述的方法还可以使用SkTypeface::CreateFromName创建face,但要注意,Skia是遍历SK_FONT_FILE_PREFIX(当前版本为:/usr/share/fonts/truetype/msttcorefonts)宏所指示的目录下所有*.ttf字库文件,并将其加载内存的。它的原型如下:
SkTypeface* SkTypeface::CreateFromName(const char name[], Style style) { return SkFontHost::CreateTypeface(NULL, name, NULL, 0, style);}
其中第一个参数name是ttf字体的Font Family name,查看方法是使用gnome-font-viewer查看到“Name”一项的内容,和具体的文件的名字没有关系。如下图:
另外一个要注意的是,当前版本的skia并不会遍历子目录,参考