简体   繁体   English

如何在Android Studio中使用自定义字体

[英]How to use custom fonts in Android Studio

I am attempting to use a custom font in an Android app. 我正在尝试在Android应用中使用自定义字体。 I placed my font files under /app/src/main/assets/fonts, and I reference them with 我将字体文件放在/ app / src / main / assets / fonts下,并使用

Typeface.createFromAsset(getApplicationContext().getAssets(), 
"fonts/magorian_font.ttf")

When I run my app, I get the error: 当我运行我的应用程序时,出现错误:

04-23 16:14:40.017 13342-13342/com.pottermore.mandrake.pottermoreapp E/AndroidRuntime: FATAL EXCEPTION: main
                                                                                   Process: com.pottermore.mandrake.pottermoreapp, PID: 13342
                                                                                   java.lang.RuntimeException: Unable to start activity ComponentInfo{com.pottermore.mandrake.pottermoreapp/com.pottermore.mandrake.pottermoreapp.ActivityHome}: java.lang.RuntimeException: Font asset not found magorian_font.ttf
                                                                                       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2665)
                                                                                       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726)
                                                                                       at android.app.ActivityThread.-wrap12(ActivityThread.java)
                                                                                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477)
                                                                                       at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                                       at android.os.Looper.loop(Looper.java:154)
                                                                                       at android.app.ActivityThread.main(ActivityThread.java:6119)
                                                                                       at java.lang.reflect.Method.invoke(Native Method)
                                                                                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
                                                                                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
                                                                                    Caused by: java.lang.RuntimeException: Font asset not found magorian_font.ttf
                                                                                       at android.graphics.Typeface.createFromAsset(Typeface.java:206)
                                                                                       at com.pottermore.mandrake.pottermoreapp.ActivityHome.onCreate(ActivityHome.java:34)
                                                                                       at android.app.Activity.performCreate(Activity.java:6679)
                                                                                       at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
                                                                                       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2618)
                                                                                       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726) 
                                                                                       at android.app.ActivityThread.-wrap12(ActivityThread.java) 
                                                                                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477) 
                                                                                       at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                                       at android.os.Looper.loop(Looper.java:154) 
                                                                                       at android.app.ActivityThread.main(ActivityThread.java:6119) 
                                                                                       at java.lang.reflect.Method.invoke(Native Method) 
                                                                                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) 
                                                                                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776) 

What am I doing wrong? 我究竟做错了什么?

add assets folder in this path : src/main/assets/font 在此路径中添加资产文件夹: src/main/assets/font

and use this code : 并使用此代码:

    Typeface typrface=Typeface.createFromAsset(getAssets(),"font/iranian_sans");

Text.setTypeface(typrface);

Update 更新

ِDont Forget , you must copy ttf format of font in font folder ِ不要忘记,必须将字体的ttf格式复制到字体文件夹中

It should be look like this when you want to give a TextView a different font :) 当您想给TextView一个不同的字体时,它应该看起来像这样:)

private TextView yourtext;

yourtext= (TextView) findViewById(R.id.the_id_of_the_textview);
    Typeface tf = Typeface.createFromAsset(getAssets(), "fonts/magorian_font.ttf");
    yourtext.setTypeface(tf);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM