国产chinesehd精品酒店,邱淑贞aa极毛片,国产在线色视频,玖玖爱zh综合伊人久久

網(wǎng)站首頁
手機(jī)版

最火免費(fèi)手機(jī)字體軟件(免費(fèi)的奶酪字體app)

更新時間:2024-01-24 00:10:39作者:未知

最火免費(fèi)手機(jī)字體軟件(免費(fèi)的奶酪字體app)

OSG默認(rèn)只能顯示英文和數(shù)字字符,如果想顯示漢字的話必須加載中文字庫,目前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)

在項目中設(shè)置TTF字庫文件

先從網(wǎng)上下載或從Windows里復(fù)制一份TTF文件到項目的assets目錄下。然后在運(yùn)行時將此文件復(fù)制到項目所在的內(nèi)部存儲的路徑下,并把路徑通過NDK傳給OSG,以便于OSG通過C++代碼加載字體文件。

在osgNativeLib.java最后添加:

public static native void setLocalFont(String fontName);

在MainActivity里實現(xiàn)字體文件的復(fù)制功能

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(FileOutputStream(fontFile), 1024 * 6) } catch (e: IOException) { e.printStackTrace() } }}override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) ... checkLocalFont() ... //建議在OSG初始化完成后調(diào)用 osgNativeLib.setLocalFont(fontFile)}

上述代碼是在Android層面拿到字體位于項目所在的路徑,現(xiàn)在需要把這個路徑傳給osgNativeLib.cpp

...JNIEXPORT void JNICALLJava_osg_AndroidExample_osgNativeLib_setLocalFont(JNIEnv *env, jobject obj, jstring fontName);...extern "C" JNIEXPORT void JNICALLJava_osg_AndroidExample_osgNativeLib_setLocalFont(JNIEnv *env, jobject obj, jstring fontName) { const char *lfont = env->GetStringUTFChars(fontName, JNI_FALSE); mainApp.setLocalFont(std::string(lfont)); //Release Strings to JNI env->ReleaseStringUTFChars(fontName, lfont);}

由于NDK只支持C語言的語法,所以osgNativeLib還要再二傳手,把路徑傳給OsgMainApp,一般來說這個文件才是我們OSG的起始文件。

// OsgMainApp.hppvoid addText(const std::string & font);//OsgMainApp.cppvoid OsgMainApp::addText(const std::string & font) { setlocale(LC_ALL, ".936"); //等價setlocale(LC_ALL, "chs"); std::string str = "OSG for android 中文顯示示例"; osg::ref_ptr<osgText::Text> text = new osgText::Text; osg::ref_ptr<osgText::Font> fontHz = 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。
如果不需要操作字體指針的話可以直接在setFont指定字體文件的路徑,這樣代碼更簡潔些。

實際效果

ps:【項目】淘寶項目邀請用戶即可獲取收益

ps:【活動】支付寶大額紅包點(diǎn)擊掃碼領(lǐng)取

ps:【本站主題】自適應(yīng)資訊類的網(wǎng)站主題

本文標(biāo)簽: [db:關(guān)鍵詞]  

為您推薦

最火免費(fèi)手機(jī)字體軟件(免費(fèi)的奶酪字體app)

OSG默認(rèn)只能顯示英文和數(shù)字字符,如果想顯示漢字的話必須加載中文字庫,目前OSG只支持TTF格式的字庫。添加FreeType插件庫首先在Android.mk文件里添加對FreeType庫的支持,找到L

2024-01-24 00:10

信用污點(diǎn) 信用污點(diǎn)幾年能消除

現(xiàn)在的生活、工作節(jié)奏越來越快,在以往的生活中如果有辦理信用卡,辦的時候很忐忑,用的時候很開心,但是往往還的時候,就記不起來了。但是,信用卡是接入了央行征信系統(tǒng)的,無論是小額,幾塊錢,還是大額,都會反映

2024-01-24 00:10

設(shè)計類最吃香的專業(yè)(現(xiàn)在學(xué)什么設(shè)計最吃香)

一,工業(yè)設(shè)計(Industrial Design)梗概工業(yè)設(shè)計分為產(chǎn)品設(shè)計、環(huán)境設(shè)計、傳播設(shè)計、設(shè)計管理4類;包括造型設(shè)計、機(jī)械設(shè)計、服裝設(shè)計、環(huán)境規(guī)劃、室內(nèi)設(shè)計、UI設(shè)計、平面設(shè)計、包裝設(shè)計、廣告設(shè)

2024-01-24 00:10

諾基亞最新款手機(jī) 諾基亞最新款手機(jī)2022

諾基亞C2 Android Go Edition價格:暫無價格上市時間:2020年03月 屏幕尺寸:5.7英寸分辨率:1520×720觸摸屏類型:電容觸摸屏,多點(diǎn)觸控CPU型號:紫光展銳SC9832

2024-01-24 00:09

一千萬放余額寶(一千萬放余額寶一天有多少利息)

將1000萬存余額寶能拿多少錢,網(wǎng)友:想都不敢想,怕了都說科技和創(chuàng)新是進(jìn)步的動力,而如今隨著科技的快速進(jìn)步,我們的生活自然也是變得多姿多彩。 要是在零幾年的時候,出門玩少了不了要帶一些錢,要是帶的面額

2024-01-24 00:09

車險一年大概多少錢 車險一年大概多少錢合適

日產(chǎn)軒逸,國內(nèi)轎車市場最暢銷的一輛車,預(yù)算在12萬左右的車主一般都會考慮到這款車型,那么買它之前你知道它一年的養(yǎng)車費(fèi)用需要多少嗎?下面我就從油費(fèi)、保養(yǎng)、車險等方面簡單地幫大家算一算。 首先是油費(fèi)日產(chǎn)軒

2024-01-24 00:09