1. 主页 > 用户投稿

安卓ttf字体免费下载(安卓手机ttf字体下载)

关于这个安卓手机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_ptrtext=newosgText::Text;osg::ref_ptrfontHz=osgText::readRefFontFile(font);text->setFont(fontHz);text->setText(str,osgText::String::ENCODING_UTF8);text->setCharacterSize(40.0f);text->setPosition(osg::Vec3(0.0,0.0,0.0f));text->setAutoRotateToScreen(true);root->addChild(text);}readRefFontFile就是读取字体文件并返回一个字体类型的指针,然后通过setFont设置这个字体指针,如果我们没有在项目中引入FreeType的插件库的话,readRefFontFile就直接返回一个null。

5、如果不需要操作字体指针的话可以直接在setFont指定字体文件的路径,这样代码更简洁些。

6、readRefFontFile就是读取字体文件并返回一个字体类型的指针,然后通过setFont设置字体指针。

7、如果我们不在项目中引入FreeType的插件库,readRefFontFile会直接返回一个null。

8、如果不需要操作字体指针,可以直接在setFont中指定字体文件的路径,这样代码更简洁。

好了,安卓手机ttf字体下载(安卓ttf字体免费下载)的知识介绍就到这里,本文到此结束!

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 203304862@qq.com

本文链接:https://jinnalai.com/n/189463.html

联系我们

在线咨询:点击这里给我发消息

微信号:

工作日:9:30-18:30,节假日休息