Canvas drawText(font)导入Times字体?

Canvas drawText (font) import Times font?

我正在尝试使用 Times 作为 Canvas 元素的 drawText() 方法的字体。但是还没有找到解决方案。

可以使用以下代码设置 'sans-serif' 或 'casual' 等字体:

paint.setTypeface(Typeface.create("casual",Typeface.NORMAL));

但是尝试使用 Times 或 Arial 等无效。 我必须先自己导入这些字体吗?

如果您对此有解决方案,我们将不胜感激。 提前谢谢您!

首先需要在'main'文件夹下新建一个'assets'文件夹,并在里面放一个.ttf之类的字体文件。

assets folder path

这是休闲字体下载link

https://befonts.com/casual-font.html

希望这是你想要的答案。谢谢

示例)

Typeface mTfRegular = Typeface.createFromAsset(getContext().getAssets(), "OpenSans-Regular.ttf");
setTypeface(mTfRegular)

另一种简单的方法是使用字体系列。

这样,

在/app/src/main/res/路径下新建一个名为font的文件夹,将字体文件放在里面,将xml中Font Family的内容写入/app/src/main/res/xml,然后应用你要应用的TextView或EditText。使用 android 应用它:fontFamily 属性.

在 XML、

中编写字体系列
<?xml version="1.0" encoding="utf-8"?>
<font-family xmlns:android="http://schemas.android.com/apk/res/android">
    <font
        android:fontStyle="normal"
        android:fontWeight="400"
        android:font="@font/casual_regular" />
    <font
        android:fontStyle="italic"
        android:fontWeight="400"
        android:font="@font/casual_italic" />
</font-family>

使用 TextView 将字体应用于 FontView,

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:fontFamily="@font/casual"/>

这帮助我解决了这个问题: 1 - 在资源 (res) 文件夹中创建字体目录。 2 - 将 .tff 文件拖放到字体目录 (example.tff) 中。 并执行以下操作:

Typeface myFont = ResourcesCompat.getFont(this, R.font.times);

来源(查看接受的答案):