[英]How do I include a font file (.ttf) in my Android NDK project?
因此,我需要在Android NDK項目中包括一個.ttf字體文件,用於Freetype字體渲染。 我在哪里放置它以便將其放置在apk中?
我將添加解決方案,這是通過傳遞assetManager並在c ++端保留對它的引用。 字體ttf文件存儲在字體文件夾內的assets文件夾中。
FT_library library;
FT_Face fontFace;
AAsset* fontFile = AAssetManager_open(manager, "fonts/Roboto-Medium.ttf", AASSET_MODE_BUFFER);
off_t fontDataSize = AAsset_getLength(fontFile);
FT_Byte* fontData = new FT_Byte[fontDataSize];
AAsset_read(fontFile, fontData, (size_t) fontDataSize);
AAsset_close(fontFile);
if (FT_Init_FreeType(&library)) {
LOGE("Could not load library");
}
if (FT_New_Memory_Face(library, (const FT_Byte*)fontData, (FT_Long)fontDataSize, 0, &fontFace)) {
LOGE("Load memory failed");
}
要傳遞assetManager,只需將其作為對象傳遞並在C ++端進行轉換。
AAssetManager *manager = AAssetManager_fromJava(javaEnv, assetObject);
在src/main/
我在放置了.ttf
文件的java/
, jni/
和res/
文件夾旁邊創建了另一個文件夾assets/
,並將其上傳到apk。 我仍在嘗試讓Freetype看到它,因為當前命令沒有得到它:
FT_New_Face(ft, "/assets/Arial.ttf", 0, &face);
但這是另一個問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.