Android NDKプロジェクトでFreetypeフォントレンダリング用の.ttfフォントファイルを含める必要があります。私はそれをAPKに入れられるようにどこに置くのですか? src/main/
でAndroid NDKプロジェクトにフォントファイル(.ttf)を含めるにはどうすればいいですか?
1
A
答えて
-1
私は.ttf
ファイルを置き、それをAPKにアップロードされたjava/
、jni/
、およびres/
フォルダと一緒に別のフォルダassets/
を作成しました。
FT_New_Face(ft, "/assets/Arial.ttf", 0, &face);
をしかし、それは別の問題だ:私はまだFreetypeのは、現在のコマンドがそれを取得していないとして、それを見るために取得しようとしています。
+0
なぜ答えがあるのでしょうか?その前のニュース?私は同じ問題に遭遇する。 –
1
解決策を追加します。それは、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);
+0
これはカスタムフォントを読み込むためのもので、システムフォントの場合はAssetManagerなしで直接アクセスするので、これは不要です。 – Adrian
関連する問題
- 1. VS2015プロジェクトにlibcdsを含めるにはどうすればいいですか?
- 2. VC++プロジェクトにビルドタイムスタンプを含めるにはどうすればいいですか?
- 3. Swiftプロジェクトにライブラリを含めるにはどうすればいいですか?
- 4. フォントファイル(例:.ttc .ttf .otf)に異なる重みが含まれていますか?
- 5. 1つのフォントファイルに異なるフォントウェイトを含めるにはどうすればよいですか?
- 6. Intellij IDEA for Androidプロジェクトに.so libを含めるにはどうすればいいですか?
- 7. Androidライブラリにリソースを含めるにはどうすればよいですか?
- 8. WindowsでAndroid NDKを使用してプロジェクトをビルドするにはどうすればよいですか?
- 9. Intellij gradleプロジェクトを別のIntellij gradleプロジェクトに含めるにはどうすればいいですか?
- 10. マージTTFフォントファイル
- 11. 内部Androidレイアウトを含めるにはどうすればよいですか?
- 12. Eclipseプロジェクトにいくつかのファイルのみを含めるにはどうすればいいですか?
- 13. C++プロジェクト(IDE:Eclipse)にC/C++ライブラリ(libcurlなど)を含めるにはどうすればいいですか?
- 14. IOSプロジェクトに新しいfacebook SDKを含めるにはどうすればいいですか?
- 15. プロジェクトに新しいファイルjsを含めるにはどうすればいいですか?
- 16. maven/sbtプロジェクト内でspark-examples.jarを依存関係に含めるにはどうすればいいですか?
- 17. Eclipseでプロジェクトに.classファイルを含めるにはどうすればいいですか? (Java)
- 18. プログラムでWinformのコンポーネントをプロジェクトに含めるにはどうすればいいですか?
- 19. プロジェクトのすべての出力をインストーラプロジェクトに含めるにはどうすればいいですか?
- 20. SimpleCursorAdapterにSeekBarを含めるにはどうすればいいですか?
- 21. REGEXに変数を含めるにはどうすればいいですか?
- 22. C++プログラムにフローツールを含めるにはどうすればいいですか?
- 23. HTMLコードをビューに含めるにはどうすればいいですか?
- 24. アプリケーションにカスタムルックアンドフィールを含めるにはどうすればいいですか
- 25. DrSchemeにファイルを含めるにはどうすればいいですか?
- 26. UIViewControllerにleah PullRefreshTableviewControllerを含めるにはどうすればいいですか?
- 27. antをビルドファイルに含めるにはどうすればいいですか?
- 28. tsconfig.jsonにlib.es2015.core.d.tsを含めるにはどうすればいいですか?
- 29. "imBack"カードアクションにmetaを含めるにはどうすればいいですか?
- 30. パスにスラッシュを含めるにはどうすればいいですか?
典型的なアプローチは、 'assets /'に入れることです。どのように使用するのか分かりませんが、AssetManagerからアセットをファイルシステム上にコピーし、ローカルファイルシステムのコピーをネイティブコードで使用する必要があります。 – CommonsWare
資産が機能しました。回答として投稿したいですか? – iHowell
NDKに関してその資産をどのように使用しているか説明できるので、回答を投稿することをお勧めします。 – CommonsWare