关于这个安卓手机ttf字体下载(安卓ttf字体免费下载)很多人还不知道,现在让我们一起来看看吧!
1、默认情况下,OSG只能显示英文和数字字符 。如果要显示汉字,必须加载中文字体 。目前,OSG只支持TTF字体 。
2、添加FreeType插件库首先在Android.mk文件中添加对FreeType库的支持,找到LOCAL_LDFLAGS项并在末尾添加以下两行:LOCAL_LDFLAGS:=-L$(LIBDIR)...-l$(OSG_ANDROID_DIR)/lib/osgPlugins-5/libosgdb_freetype.a-l$(OSG_ANDROID_DIR)/obj/local/armeabi-v7a/libfta然后,向OsgMainApp.hpp添加一个插件:USE_OSGPLUGIN(freetype)在项目中设置TTF字体文件首先从Internet下载一个TTF文件,或者从Windows将其复制到项目的assets目录中 。然后运行时把这个文件复制到项目所在的内部存储路径,通过NDK把路径传给OSG,这样OSG就可以通过C++代码加载字体文件了 。在osgNativeLib.java的末尾添加:publicstaticnativevoidsetLocalFont(StringfontName);在MainActivity中实现字体文件复制功能 。
3、privatevalfontName="fangsong_GB23ttf"privatevalfontFilebylazy{filesDir.path+File.separator+fontName}privatefuncheckLocalFont(){if(!File(fontFile).exists()){try{valfis=resources.assets.open("font/$fontName")fis.copyTo(FileOutputStream(fontFile),1024*6)}catch(e:IOException){e.printStackTrace()}}}overridefunonCreate(savedInstanceState:Bundle?){super.onCreate(savedInstanceState)...checkLocalFont()...//建议在OSG初始化完成后调用osgNativeLib.setLocalFont(fontFile)}上面的代码是Android级别的项目中字体所在的路径 。现在您需要将这个路径传递给osgNativeLib.cpp...JNIEXPORTvoidJNICALLJava_osg_AndroidExample_osgNativeLib_setLocalFont(JNIEnv*env,jobjectobj,jstringfontName);...extern"C"JNIEXPORTvoidJNICALLJava_osg_AndroidExample_osgNativeLib_setLocalFont(JNIEnv*env,jobjectobj,jstringfontName){constchar*lfont=env->GetStringUTFChars(fontName,JNI_FALSE);mainApp.setLocalFont(std::string(lfont));//ReleaseStringstoJNIenv->ReleaseStringUTFChars(fontName,lfont);}由于NDK只支持C语言的语法,osgNativeLib必须是一个setter,并将路径传递给OsgMainApp 。一般来说,这个文件是我们OSG的启动文件 。
4、//OsgMainApp.hppvoidaddText(conststd::string&font);//OsgMainApp.cppvoidOsgMainApp::addText(conststd::string&font){setlocale(LC_ALL,".936");//等价setlocale(LC_ALL,"chs");std::stringstr="OSGforandroid中文显示示例";osg::ref_ptr
6、readRefFontFile就是读取字体文件并返回一个字体类型的指针,然后通过setFont设置字体指针 。
7、如果我们不在项目中引入FreeType的插件库,readRefFontFile会直接返回一个null 。
8、如果不需要操作字体指针,可以直接在setFont中指定字体文件的路径,这样代码更简洁 。
【安卓手机ttf字体下载 安卓ttf字体免费下载】好了,安卓手机ttf字体下载(安卓ttf字体免费下载)的知识介绍就到这里,本文到此结束!
推荐阅读
- 小米手机如何投影/投屏到电视
- 华为nova3e手机参数详解
- 怎么关闭手机的定位服务
- 为什么手机拍头发特别稀
- 火车上手机没电了怎么充电
- 苹果手机人脸识别不了什么原因 成面容ID不能用咋解决
- 现在买华为手机哪款好?不少于2000个字的综合评测
- 手机卡没信号无服务是什么原因 手机没有网络信号原因
- 华为手机怎么设置应用后台运行
- 华为荣耀50系列5g手机图片多少钱 华为荣耀5g手机价格大全 价格表