如何在ANDROID STUDIO中导入外部字体/字体?

如何在ANDROID STUDIO中导入外部字体/字体?,android,fonts,android-studio,Android,Fonts,Android Studio,我想知道如何在Android Studio中使用外部字体,因为没有资产文件夹。我在网上找了一个有用的档案,但他们都假装使用资产文件夹 我自己在src/main中创建了一个资产文件夹,但Android Studio无法识别getAssets() 如果您有自定义字体,请使用以下代码: TextView tv=(TextView)findViewById(R.id.custom); Typeface face=Typeface.createFromAsset(getAssets(),"fonts/Ve

我想知道如何在Android Studio中使用外部字体,因为没有资产文件夹。我在网上找了一个有用的档案,但他们都假装使用资产文件夹


我自己在
src/main
中创建了一个资产文件夹,但Android Studio无法识别
getAssets()

如果您有自定义字体,请使用以下代码:

TextView tv=(TextView)findViewById(R.id.custom);
Typeface face=Typeface.createFromAsset(getAssets(),"fonts/Verdana.ttf");
tv.setTypeface(face);
另外,将字体文件放在assets/fonts文件夹中,然后按照此处的说明进行操作

注意:您必须自己创建资产文件夹

继续您的项目:app-->src-->main

创建一个资产文件夹,如下所示:

|assets

    |-----------------fonts

        |-------------------font.ttf

|java

|res

AndroidManifest.xml
然后使用

     Typeface face=Typeface.createFromAsset(getAssets(),"fonts/digital.ttf");
     txtV.setTypeface(face);

如果“getAssets()”方法出现错误,则可以使用以下方法。 在“资源”文件夹中放置字体系列

Typeface getFace=Typeface.create("OpenSans",3);
textView =  (TexView) findViewById(R.id.textView);
textView.setTypeface(getFace);

如果您同时尝试了res/asset/font和main/asset字体文件夹,并且尝试了不同的字体,但都失败了,那么很可能是Android Studio的错误

我也有同样的问题,但我通过将我的字体导入在线字体编辑器(搜索pentacom字体编辑器)并导出字体并将其保存到新的ttf文件来解决。结果字体的分辨率会更低,但对我来说效果不错


您可能还可以尝试其他在线字体编辑器/导出器。

据android开发者介绍: Android 8.0(API级别26)引入了一项新功能,即XML字体,它允许您使用字体作为资源。您可以将字体文件添加到res/font/文件夹中,以将字体捆绑为资源。这些字体在您的R文件中编译,并在Android Studio中自动提供。您可以使用新的资源类型font访问字体资源。例如,要访问字体资源,请使用@font/myfont或R.font.myfont

有关详细信息:

将字体文件(例如customfont.tff和customfont\u bold.tff)放在文件夹app>src>res>font>下(注意:如果不存在,请创建字体文件夹)

此外,在同一文件夹中创建名为fonts.xml的文件,其中包含以下内容:

  <font-family xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:app="http://schemas.android.com/apk/res-auto">

        <font
                app:fontStyle="normal"
                app:fontWeight="700"
                app:font="@font/customfont"/>

        <font
                app:fontStyle="normal"
                app:fontWeight="700"
                app:font="@font/customfont_bold"/>
  </font-family>

然后,编辑文件app>src>res>values>styles.xml,为整个应用程序应用默认字体

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="android:fontFamily">@font/customfont</item>
</style>

@颜色/原色
@颜色/原色暗
@颜色/颜色重音
@字体/自定义字体
如果要更改单个UI元素的字体,请执行以下操作:

<TextView
    android:fontFamily="@font/customfont"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:textColor="@color/black"
    android:textSize="18sp"
    android:text="Some text"
    />

注意:此方法适用于API级别16+(有关更多信息:)

的可能副本