2011-10-22 52 views
3

我需要字体字体Helvetica在我的应用程序中,适用于所有activities.there有任何来源?Android更改字体类型的应用程序?

我有资产的文件夹Helvetica.ttf文件,但是当我尝试

TextView text2 =(TextView)findViewById(R.id.textView2); 
    Typeface font = Typeface.createFromAsset(getAssets(), "helvetica.ttf"); 
    text2.setTypeface(font);            

但错误是::

10-22 17:48:43.883: ERROR/AndroidRuntime(951): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.logistics.typeface/com.logistics.typeface.MainActivity}: java.lang.RuntimeException: native typeface cannot be made 
10-22 17:48:43.883: ERROR/AndroidRuntime(951):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663) 
10-22 17:48:43.883: ERROR/AndroidRuntime(951):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 
10-22 17:48:43.883: ERROR/AndroidRuntime(951):  at android.app.ActivityThread.access$2300(ActivityThread.java:125) 
10-22 17:48:43.883: ERROR/AndroidRuntime(951):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 
10-22 17:48:43.883: ERROR/AndroidRuntime(951):  at android.os.Handler.dispatchMessage(Handler.java:99) 
10-22 17:48:43.883: ERROR/AndroidRuntime(951):  at android.os.Looper.loop(Looper.java:123) 
10-22 17:48:43.883: ERROR/AndroidRuntime(951):  at android.app.ActivityThread.main(ActivityThread.java:4627) 
10-22 17:48:43.883: ERROR/AndroidRuntime(951):  at java.lang.reflect.Method.invokeNative(Native Method) 
10-22 17:48:43.883: ERROR/AndroidRuntime(951):  at java.lang.reflect.Method.invoke(Method.java:521) 
10-22 17:48:43.883: ERROR/AndroidRuntime(951):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
10-22 17:48:43.883: ERROR/AndroidRuntime(951):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
10-22 17:48:43.883: ERROR/AndroidRuntime(951):  at dalvik.system.NativeStart.main(Native Method) 
10-22 17:48:43.883: ERROR/AndroidRuntime(951): Caused by: java.lang.RuntimeException: native typeface cannot be made 
10-22 17:48:43.883: ERROR/AndroidRuntime(951):  at android.graphics.Typeface.<init>(Typeface.java:147) 
10-22 17:48:43.883: ERROR/AndroidRuntime(951):  at android.graphics.Typeface.createFromAsset(Typeface.java:121) 
10-22 17:48:43.883: ERROR/AndroidRuntime(951):  at com.logistics.typeface.MainActivity.onCreate(MainActivity.java:16) 
10-22 17:48:43.883: ERROR/AndroidRuntime(951):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
10-22 17:48:43.883: ERROR/AndroidRuntime(951):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 
10-22 17:48:43.883: ERROR/AndroidRuntime(951):  ... 11 more 
+0

你能更清楚吗?您是否想根据用户输入 –

回答

3

我需要在我的应用程序

我希望你正确许可本作分配,黑体appears to be a commercial font字体字样Helvetica字体。

,并适用于所有活动

通过手动捆绑在你的应用程序的字体和通过手工把它应用到每一个TextView(或子类),是的。

+0

工作,我有资产的文件夹Helvetica.ttf文件,但是当我尝试这个.... –

+0

@ commonsware..plz看到我qustion我在为错误的麻烦........... –

+0

@ user1003730:由于某些原因,Android不支持所有的TTF文件。它不喜欢你的。 – CommonsWare

7

定义字体样式的资源,并使用在任何你创建你的元素。 像这样:

<style name="CodeFont" parent="@android:style/TextAppearance.Medium"> 
    <item name="android:layout_width">fill_parent</item> 
    <item name="android:layout_height">wrap_content</item> 
    <item name="android:textColor">#00FF00</item> 
    <item name="android:typeface">monospace</item> 
</style> 

你可以参考这些链接,以及:

http://developer.android.com/guide/topics/ui/themes.html

http://www.androidengineer.com/2010/06/using-themes-in-android-applications.html

如果您想自定义字体使用再看看这个:

http://www.barebonescoder.com/2010/05/android-development-using-custom-fonts/

+0

更改字体类型,这仅适用于一个项目。是否有任何方法可以为所有项目添加一次? –

+0

我已经更新了答案。请参阅链接。 –

+0

所以我的问题,它不能为黑体 –