日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

安卓手機ttf字體下載 安卓ttf字體免費下載

關(guān)于這個安卓手機ttf字體下載(安卓ttf字體免費下載)很多人還不知道,現(xiàn)在讓我們一起來看看吧!

安卓手機ttf字體下載 安卓ttf字體免費下載


1、默認情況下,OSG只能顯示英文和數(shù)字字符 。如果要顯示漢字,必須加載中文字體 。目前,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)在項目中設(shè)置TTF字體文件首先從Internet下載一個TTF文件,或者從Windows將其復制到項目的assets目錄中 。然后運行時把這個文件復制到項目所在的內(nèi)部存儲路徑,通過NDK把路徑傳給OSG,這樣OSG就可以通過C++代碼加載字體文件了 。在osgNativeLib.java的末尾添加:publicstaticnativevoidsetLocalFont(StringfontName);在MainActivity中實現(xiàn)字體文件復制功能 。
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初始化完成后調(diào)用osgNativeLib.setLocalFont(fontFile)}上面的代碼是Android級別的項目中字體所在的路徑 ?,F(xiàn)在您需要將這個路徑傳遞給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設(shè)置這個字體指針,如果我們沒有在項目中引入FreeType的插件庫的話,readRefFontFile就直接返回一個null 。5、如果不需要操作字體指針的話可以直接在setFont指定字體文件的路徑,這樣代碼更簡潔些 。
6、readRefFontFile就是讀取字體文件并返回一個字體類型的指針,然后通過setFont設(shè)置字體指針 。
7、如果我們不在項目中引入FreeType的插件庫,readRefFontFile會直接返回一個null 。
8、如果不需要操作字體指針,可以直接在setFont中指定字體文件的路徑,這樣代碼更簡潔 。
【安卓手機ttf字體下載 安卓ttf字體免費下載】好了,安卓手機ttf字體下載(安卓ttf字體免費下載)的知識介紹就到這里,本文到此結(jié)束!

    推薦閱讀