Android NDK 프로젝트에서 Freetype 글꼴 렌더링을위한 .ttf 글꼴 파일을 포함해야합니다. 어디서 APK에 넣을 수 있을까요?Android NDK 프로젝트에 글꼴 파일 (.ttf)을 포함하려면 어떻게해야합니까?
답변
는 src/main/
에서 나는 내가 .ttf
파일을 배치 java/
, jni/
및 res/
폴더와 함께 다른 폴더 assets/
를 생성하고 그것은 APK에 업로드되었습니다.
FT_New_Face(ft, "/assets/Arial.ttf", 0, &face);
을하지만 그것은 또 다른 질문 : 나는 아직도하는 Freetype는 현재의 명령을 받고되지 않기 때문에 그것을보고 얻기 위해 노력하고있어.
왜 답변으로 표시 되었습니까? 그 앞에있는 어떤 소식? 나는 같은 문제를 겪는다. –
내 솔루션을 추가합니다. 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);
시스템 글꼴의 경우 사용자 지정 글꼴을로드하는 것으로 추가 하겠지만 AssetManager없이 직접 액세스 할 수 있으므로 필요하지 않습니다. – Adrian
- 1. 프로젝트에 unittest.dart를 포함하려면 어떻게해야합니까?
- 2. Xcode 프로젝트에 txt 파일을 포함하려면 어떻게해야합니까?
- 3. Android NDK 프로젝트에 uuid.h 포함
- 4. 기존 프로젝트에 안드로이드 라이브러리를 포함하려면 어떻게해야합니까?
- 5. Maven 프로젝트에 JPA 2.1 기능을 포함하려면 어떻게해야합니까?
- 6. 내 Qt 프로젝트에 muparser 라이브러리를 포함하려면 어떻게해야합니까?
- 7. Android NDK 파일 쓰기
- 8. 프로젝트에서 SharpNLP를 포함하려면 어떻게해야합니까?
- 9. Android Studio에서 다른 모듈의 문자열을 포함하려면 어떻게해야합니까?
- 10. Android Install의 일부로 텍스트 파일을 포함하려면 어떻게해야합니까?
- 11. 안드로이드에서 파일 작업 NDK
- 12. 출력 파일 이름에 버전 번호를 포함하려면 어떻게해야합니까?
- 13. rubymotion에 기본 라이브러리를 포함하려면 어떻게해야합니까?
- 14. PlayN 프레임 워크에서 프로젝트에 단위 테스트를 포함하려면 어떻게해야합니까?
- 15. Eclipse C++ 프로젝트에 정적으로 링크 된 라이브러리를 포함하려면 어떻게해야합니까?
- 16. 미리 정의 된 것을 JIRA Greenhopper 프로젝트에 포함하려면 어떻게해야합니까?
- 17. Visual C# 프로젝트에 xsd 스키마 파일을 포함하려면 어떻게해야합니까?
- 18. TeamCity를 사용하는 다른 프로젝트에 다른 프로젝트의 DLL을 포함하려면 어떻게해야합니까?
- 19. Toast 알림에 버튼을 포함하려면 어떻게해야합니까?
- 20. ListBox에 아이콘을 포함하려면 어떻게해야합니까?
- 21. _layout에 양식을 포함하려면 어떻게해야합니까?
- 22. PHP에 CSS를 포함하려면 어떻게해야합니까?
- 23. 클래스에 파일을 포함하려면 어떻게해야합니까?
- 24. JAR에 ChromeDriver를 포함하려면 어떻게해야합니까?
- 25. HttpWebRequest에 X509Certificate을 포함하려면 어떻게해야합니까?
- 26. Android NDK java.lang.UnsatisfiedLinkError 오류
- 27. Android Studio NDK
- 28. Android NDK : ''
- 29. Android NDK
- 30. 같은 grep에서 제외하고 포함하려면 어떻게해야합니까?
일반적인 접근 방식은'assets /'에 넣는 것입니다. 나는 당신이 그것을 어떻게 사용할 지 잘 모르지만 내 생각 엔 자산 (AssetManager'에서)을 파일 시스템의 로컬 파일로 복사 한 다음 네이티브 코드가 그 로컬 파일 시스템 복사본을 사용해야 할 것입니다. – CommonsWare
자산이 작동했습니다. 답변으로 게시 하시겠습니까? – iHowell
NDK와 관련하여 해당 자산을 어떻게 사용하고 있는지 설명 할 수 있으므로 답변을 게시하는 것이 좋습니다. – CommonsWare