私は Android が初めてで、アセットから Typeface を作成する方法を考えています
私の Android アプリケーションの assets フォルダーに .ttf ファイルがあります。
私は書体を作成するためにネイティブコードを使用しています:
class Test
{
public:
Test(){};
Test(const char* path);
bool getHasFont(){ return hasFont;}
~Test(){}
private:
SkPaint paint;
SkTypeface* typeface;
bool hasFont;
};
Test::Test(const char* path)
{
LOGI(path);
typeface = SkTypeface::CreateFromFile(path);
if(typeface != NULL)
hasFont = true;
else
hasFont = false;
}
JNIEXPORT jboolean JNICALL Java_com_example_Test_NativeSkia_getHelloFromNative(JNIEnv *env,
jclass clazz, jstring path) {
const char *nativeString = env->GetStringUTFChars(path, 0);
Test* tes = new Test(nativeString);
return tes->getHasFont();
}
}
私が呼んでいるAndroidアプリケーションで:
boolean isWorking = NativeSkia.getTestFromNative("../assets/fonts/Agora/Agora-Reg.ttf");
false を返します。
デバイス内の SD カードにフォルダーを作成し、そこにすべてのフォントを配置すると、次のようになります。
boolean isWorking = NativeSkia.getTestFromNative("/mnt/sdcard/fonts/Agora/Agora-Reg.ttf");
正常に動作しますが、フォントを assets フォルダーに入れる必要があります。