当前位置: 首页 > 知识库问答 >
问题:

无法解析方法“getFont(?)”

殳飞扬
2023-03-14

正如文件所述:

Android O允许您通过在res/字体/文件夹中添加字体文件来捆绑字体作为资源。

结果:

您可以使用getFont(int)方法检索字体,其中需要传递要检索的字体的资源标识符。此方法返回Typeface对象。这将对字体的第一个重量或样式变体(如果是字体系列)进行编码。然后可以使用字体。create(typeface,style)方法来检索特定样式。

注意:TextView已经为您完成了这项工作。

Typeface Typeface=getResources()。getFont(R.font.myfont);文本视图。setTypeface(字体);

不幸的是,当我使用上述代码时,我得到了以下错误:

cannot resolve method 'getFont(?)'

以前我经常做以下事情:

Typeface typeface = Typeface.createFromAsset(getAssets(), "fonts/myfont.ttf");

但是现在当我尝试在资产文件夹中创建字体文件夹时,它会自动跳转到res文件夹中。

我正在使用Android Studio2.3。提前感谢您的任何帮助。

共有3个答案

毕浩渺
2023-03-14

试试这样的

Typeface yourFont = Typeface.createFromAsset(getAssets(), "fonts/yourFont.ttf");
倪灿
2023-03-14

我知道这可能会很晚,但这里有一些文档,说明如何在26之前的API版本中使用下载的字体(兼容模式)。

基本上,您必须定义如下所示的字体描述(使用属性-app和android),然后使用ResourceCompat类以编程方式访问字体:

Typeface-Typeface=ResourcesCompat。getFont(context,R.font.myfont)

<?xml version="1.0" encoding="utf-8"?>
<font-family xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
        <font android:fontStyle="normal" android:fontWeight="400" 
            android:font="@font/myfont-Regular"
            app:fontStyle="normal" app:fontWeight="400"
            app:font="@font/myfont-Regular"/>
        <font android:fontStyle="italic" android:fontWeight="400"
            android:font="@font/myfont-Italic"
            app:fontStyle="italic" app:fontWeight="400"
            app:font="@font/myfont-Italic" />
</font-family>

干杯

宰父劲
2023-03-14

使用support library 26中的此方法

ResourcesCompat.getFont(context, R.font.your_font);

资料来源:https://developer.android.com/reference/android/support/v4/content/res/ResourcesCompat.html

 类似资料:
  • 我正在通过Android Studio中的一个应用程序工作,该应用程序使用学校意图传递数据。我已经创建了传递数据的对象,并启动了,但是我不断收到一个警告,说我的方法无法解析。有什么想法吗?提前谢了。

  • > 在菜单项和添加导航头之间导航的代码由一个方法组成。 由于作者没有提到在哪里粘贴这段代码,我粘贴在我的文件中 在菜单项之间导航和添加导航标题之间的代码是否由我粘贴在正确的位置? 在方法selectDrawerItem(MenuItem MenuItem)中有一条注释,创建一个新片段,并根据位置指定要显示的行星,作者是否希望我在这里添加一些内容。

  • 我正在尝试构建一个java。net应用程序,其中客户端和服务器必须通过串行收集类型(如字节[])相互发送数据。 由于未知原因,我的DataInputStream无法解析方法readAllBytes()。 一个朋友把它扔进了IDE,它没有抱怨。我不确定这怎么会是一个版本问题,但我检查了一下,并没有误解我的项目。我正在使用Java 8。 实际上,我确信应该支持这个方法,但我不明白为什么不支持,因为它是

  • 我试图使用for循环迭代一系列的日期,我打算使用plusDays增加开始日期,但是我得到了“Canland resolve method plusDays in date”。下面是我的代码:

  • 我正在尝试为改造设置缓存,以便它不必不断检索数据。我遵循了这个SO,因为它似乎在我需要的正确方向上。 我有以下内容(与销售订单相同) 但是,返回错误。 我在这里做错了什么?我有改造2.1.0和okhttp3 3.4.1

  • 如何解决此错误?我在这段代码中遇到了一个错误: 无法解决方法的add(int,android.trey.startingpoint.nl.秒活动。碎片 谢谢你的帮助! 编辑:导入: 导入android。应用程序。活动导入android。支持v4。应用程序。碎片 导入android。操作系统。捆导入android。看法更平坦;导入android。看法菜单导入android。看法MenuItem;导入