OSG默认只能显示英文和数字字符,如果想显示汉字的话必须加载中文字库,目前OSG只支持TTF格式的字库。
添加FreeType插件库
首先在Android.mk文件里添加对FreeType库的支持,找到LOCAL_LDFLAGS项并在最后添加以下两行:
LOCAL_LDFLAGS := -L $(LIBDIR) \
...
-l$(OSG_ANDROID_DIR)/lib/osgPlugins-3.6.5/libosgdb_freetype.a \
-l$(OSG_ANDROID_DIR)/obj/local/armeabi-v7a/libft2.a
然后在找在OsgMainApp.hpp里添加插件:
USE_OSGPLUGIN(freetype)
在项目中设置TTF字库文件
先从网上下载或从Windows里复制一份TTF文件到项目的assets目录下。然后在运行时将此文件复制到项目所在的内部存储的路径下,并把路径通过NDK传给OSG,以便于OSG通过C++代码加载字体文件。
在osgNativeLib.java最后添加:
public static native void setLocalFont(String fontName);
在MainActivity里实现字体文件的复制功能
private val fontName = "fangsong_GB2312.ttf"
private val fontFile by lazy { filesDir.path + File.separator + fontName }
private fun checkLocalFont() {
if (!File(fontFile).exists()) {
try {
val fis = resources.assets.open("font/$fontName")
fis.copyTo(Fi

本文介绍了如何在Android项目中使用OSG加载TTF格式的中文字库,包括添加FreeType插件库、设置本地字体文件、传递字体路径及实际效果展示。重点在于如何在OSG环境中显示汉字字符。
最低0.47元/天 解锁文章
890





