所以我想在android中更改android:fontFamily,但我在android中没有看到任何预定义的字体。如何选择预定义的选项之一?我真的不需要定义我自己的TypeFace,但我所需要的是与现在显示的不同。

<TextView
    android:id="@+id/HeaderText"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="52dp"
    android:gravity="center"
    android:text="CallerBlocker"
    android:textSize="40dp"
    android:fontFamily="Arial"
 />

看来我在上面做的事真的行不通!BTW android:fontFamily=“Arial”是一个愚蠢的尝试!


当前回答

您也可以在res目录下添加字体文件夹,如下所示。

然后,选择字体作为资源类型。

您可以从https://www.1001fonts.com/,然后将TTF文件提取到此字体目录。

最后,只需通过添加android:fontFamily:“@font/urfontfilename”来更改包含文本视图的XML文件

其他回答

这里有一个很好的图书馆

    implementation 'uk.co.chrisjenx:calligraphy:2.3.0'

以编程方式将字体添加到TextView的最简单方法是,首先,将字体文件添加到项目中的“资产”文件夹中。例如,字体路径如下所示:assets/fonts/my_font.otf

并将其添加到TextView中:

科特林

val font_path = "fonts/my_font.otf"  

myTypeface = Typeface.createFromAsset(MyApplication.getInstance().assets, font_path)

textView.typeface = myTypeface

Java

String font_path = "fonts/my_font.otf";
Typeface myTypeface = Typeface.createFromAsset(MyApplication.getInstance().assets, font_path)
textView.setTypeface(myTypeface);

我只想提一下,Android内部字体的地狱即将结束,因为今年在Google IO上,我们终于得到了这个->https://developer.android.com/preview/features/working-with-fonts.html

现在有了一个新的资源类型字体,您可以将所有应用程序字体放在res/fonts文件夹中,然后使用R.font.my_custom_font进行访问,就像您可以访问字符串res值、可绘制res值等一样。您甚至有机会创建字体face xml文件,该文件将由您的自定义字体设置(关于斜体、粗体和下划线属性)。

阅读上面的链接了解更多信息。让我们看看支持。

您也可以在res目录下添加字体文件夹,如下所示。

然后,选择字体作为资源类型。

您可以从https://www.1001fonts.com/,然后将TTF文件提取到此字体目录。

最后,只需通过添加android:fontFamily:“@font/urfontfilename”来更改包含文本视图的XML文件

对于android studio 3及以上版本,您可以使用此样式,然后在应用程序中查看所有文本字体更改。

在style.xml中创建此样式:

<!--OverRide all textView font-->
<style name="defaultTextViewStyle" parent="android:Widget.TextView">
        <item name="android:fontFamily">@font/your_custom_font</item>
</style>

然后在主题中使用它:

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="android:textViewStyle">@style/defaultTextViewStyle</item>
</style>