【发布时间】:2014-01-31 19:32:10
【问题描述】:
我使用下面的代码,
TextView as;
as=(TextView)fragmentView.findViewById(R.id.e1_name);
Typeface font = Typeface.createFromAsset(getActivity().getAssets(),"fonts/wt071.ttf ");
as.setTypeface(font);
结果错误
01-13 13:45:32.587 22738-22738/cytech.example.app E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: cytech.example.app, PID: 22738
java.lang.RuntimeException: native typeface cannot be made
at android.graphics.Typeface.<init>(Typeface.java:175)
at android.graphics.Typeface.createFromAsset(Typeface.java:149)
at cytech.example.app.e.fg_e1.onCreateView(fg_e1.java:58)
at android.app.Fragment.performCreateView(Fragment.java:1700)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:890)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1062)
at android.app.BackStackRecord.run(BackStackRecord.java:684)
at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1447)
at android.app.FragmentManagerImpl$1.run(FragmentManager.java:443)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5017)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
at dalvik.system.NativeStart.main(Native Method)
Android 不支持 TTF 吗?
我试了很多中文TTF都不行。
有什么办法可以解决 或者在哪里可以找到支持的列表
【问题讨论】:
-
就我而言,
Typeface font = Typeface.createFromAsset(context.getAssets(), "customfont.ttf");有效。请发布完整的错误日志。这可能是“找不到文件/资产”之类的问题。请尝试另一种字体,例如Verdana 绝对有效。 (首先确保它适用于英文,然后看看可以对中文做什么。)而且......当资源发生变化时,Eclipse 需要在重建之前清理(这是一个错误)。 -
原生不支持的原因 - 检查此链接我认为有帮助stackoverflow.com/questions/7531856/…
-
嗯,有趣:
private Typeface(int ni) { if (0 == ni) { throw new RuntimeException("native typeface cannot be made"); } native_instance = ni; }