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

时间:2014-06-24 05:03:48

标签: android fonts android-studio

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

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

6 个答案:

答案 0 :(得分:39)

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

像这样创建资产文件夹:

|assets

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

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

|java

|res

AndroidManifest.xml

然后使用

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

答案 1 :(得分:7)

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

TextView tv=(TextView)findViewById(R.id.custom);
Typeface face=Typeface.createFromAsset(getAssets(),"fonts/Verdana.ttf");
tv.setTypeface(face);

同样将您的字体文件放在assets / fonts文件夹中,并从此处跟随instructions

注意:您必须自己制作资产文件夹

答案 2 :(得分:2)

将字体文件(例如customfont.tff和customfont_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+有效(有关更多信息:https://developer.android.com/guide/topics/ui/look-and-feel/fonts-in-xml

答案 3 :(得分:0)

如果您遇到错误&#34; getAssets()&#34;方法然后你可以使用以下方式。 在assets文件夹中放置字体系列

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

答案 4 :(得分:0)

如果您尝试了res / asset / font和main / asset字体文件夹,并且您尝试过不同的字体,但它无法正常工作 - 它很可能是Android工作室错误。

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

您可以尝试其他在线字体编辑/出口商。

答案 5 :(得分:0)

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

了解更多详情:https://developer.android.com/guide/topics/ui/look-and-feel/fonts-in-xml.html