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

关于这个安卓手机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字体免费下载】好了,安卓手机ttf字体下载(安卓ttf字体免费下载)的知识介绍就到这里,本文到此结束!

    推荐阅读