所以我想在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”是一个愚蠢的尝试!


当前回答

经过反复尝试,我学到了以下内容。

在*.xml中,您可以将常用字体与以下功能结合起来,而不仅仅是字体:

 android:fontFamily="serif" 
 android:textStyle="italic"

有了这两种样式,在任何其他情况下都不需要使用字体。fontfamily&textStyle的组合范围更大。

其他回答

以编程方式将字体添加到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:fontFamily="@font/my_font_in_font_folder"

您可以使用以下库轻松完成

https://github.com/sunnag7/FontStyler

<com.sunnag.fontstyler.FontStylerView
              android:textStyle="bold"
              android:text="@string/about_us"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:paddingTop="8dp"
              app:fontName="Lato-Bold"
              android:textSize="18sp"
              android:id="@+id/textView64" />

它重量轻,易于实现,只需在asset文件夹中复制字体并在xml中使用名称即可。

我正在使用Chris Jenx设计的优秀库书法,该库允许您在android应用程序中使用自定义字体。试试看!

在res/layout/value/style.xml中设置样式如下:

<style name="boldText">
    <item name="android:textStyle">bold|italic</item>
    <item name="android:textColor">#FFFFFF</item>
</style>

要在main.xml文件中使用此样式,请使用:

style="@style/boldText"