Java 无法解析方法';getFont(?)和#x27;

Java 无法解析方法';getFont(?)和#x27;,java,android,Java,Android,作为缔约国: Android O允许您通过添加字体文件将字体捆绑为资源 在res/font/文件夹中 因此: 您可以使用getFont(int)方法检索字体,其中 需要传递所需字体的资源标识符 检索此方法返回一个Typeface对象。这对 字体的第一个重量或样式变体(如果是字体) 家庭然后可以使用Typeface.create(Typeface,style)方法 检索特定样式 注意:TextView已经为您完成了这项工作 Typeface-Typeface=getResources().getF

作为缔约国:

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

因此:

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

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

Typeface-Typeface=getResources().getFont(R.font.myfont) textView.setTypeface(字体)

不幸的是,当我使用上述代码时,出现以下错误:

cannot resolve method 'getFont(?)'
以前我经常做以下事情:

Typeface typeface = Typeface.createFromAsset(getAssets(), "fonts/myfont.ttf");
但是现在,当我尝试在资产文件夹中创建字体文件夹时,它会自动跳入res文件夹


我正在使用android studio 2.3。提前感谢您的帮助。

试试这样的方法

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

我还没有使用它,但据我所知,只有当你将你的Android Studio升级到2.4时,你才能瞄准Android O设备。您还需要将SDK更新为最新版本。因为正如doc所说,Android O中提供了getFont()。

我的做法如下:

private TextView textView;


@Override
protected void onCreate(Bundle savedInstanceState) {
.
.
.
.

textView = (TextView) findViewById(R.id.textView);
Typeface mTextView = Typeface.createFromAsset(getAssets(),"fonts/your_font_style.ttf");
textView.setTypeface(mTextView);

希望这会对您有所帮助。

字体文件夹应该在资产文件夹下,因此尝试在那里创建文件夹。

由于这是O中发布的一种新方法,您必须将开发人员预览作为构建目标来使用它。有关更多信息,请查看此项。

由于我无法直接从Android Studio创建字体文件夹,因此我使用windows资源管理器打开了项目文件夹,并在
app\src\main\assets\
文件夹中创建了字体,并将我的字体文件粘贴在那里

正如许多其他人在回答中建议的那样,我必须使用Android O的新功能。各国:

只有Android Studio 2.4支持所有新开发人员 安卓O提供的功能。所以你需要得到金丝雀 Android Studio 2.4版本开始使用Android O SDK。但是 您仍然可以安装稳定版本的Android Studio


我知道这可能会很晚,但这里有一个在26(兼容模式)之前的API版本中使用下载字体的方法

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

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



干杯

使用支持库26中的此方法

ResourcesCompat.getFont(context, R.font.your_font);
资料来源:

谢谢你的回答,但我已经更新了问题。我过去经常这样做,但我无法在assets文件夹中创建fonts文件夹,因为它会自动在res folder中创建fonts文件夹。您如何调用
getFont
?你有一个有效的
Resources
对象吗?你的目标是开发者预览吗?@njzk2我不知道。每当我试图在assets文件夹中创建fonts文件夹时,它都会跳出并进入res文件夹。@Submersed我刚刚创建了一个新项目,对开发人员预览不太了解。我可以使用assets目录OK并使用getAssets()方法。我使用操作系统(本例中为Linux)手动创建了它,并在中复制了字体。允许我支持几年前的Android版本,但不一定很古老!谢谢你的回答。我正在使用编译器DKVersion25构建工具版本“25.0.2”。不幸的是,SDK管理器中目前没有可用的更新。让您的工作室从金丝雀频道下载更新,然后您可以下载studio 2..4预览3。之后,您可以下载SDK工具版本26.0.0Thanks,我目前正在下载新的更新,并将让所有人知道更新结果。字体文件夹自动跳出资产文件夹并进入res folderI中。在我启动此项目时,我没有所谓的“上下文”,它建议创建
上下文,但我没有什么可以传递给它。这看起来是最适合我的,但它声称找不到路径。默认文件夹名为“font”,我只是尝试添加“roboto_regular.ttf”作为测试。然后给出
java.lang.RuntimeException:Font-asset-notfound-Font/roboto\u-regular.ttf