正如documentation所述:
Android O允许您通过添加字体文件将字体作为资源捆绑 在 res / font / 文件夹中。
结果:
您可以使用
getFont(int)
方法检索字体 需要传递您想要的字体的资源标识符 检索。此方法返回Typeface对象。这编码了 字体的第一个重量或样式变体,如果是字体 家庭。然后,您可以使用Typeface.create(字体,样式)方法 检索特定样式。注意:TextView已经为您完成了这项工作。
字体字体= getResources()。getFont(R.font.myfont); 的 textView.setTypeface(字体);
不幸的是,当我使用上面的代码时,我收到以下错误:
cannot resolve method 'getFont(?)'
以前我曾经做过以下事情:
Typeface typeface = Typeface.createFromAsset(getAssets(), "fonts/myfont.ttf");
但是现在当我尝试在资源文件夹中创建字体文件夹时,它会自动跳转到 res 文件夹中。
我正在使用 android studio 2.3 。提前感谢您的帮助。
答案 0 :(得分:17)
使用支持库26中的此方法。
ResourcesCompat.getFont(context, R.font.your_font);
来源: https://developer.android.com/reference/android/support/v4/content/res/ResourcesCompat.html
答案 1 :(得分:2)
尝试这样的事情
Typeface yourFont = Typeface.createFromAsset(getAssets(), "fonts/yourFont.ttf");
答案 2 :(得分:1)
我还没有使用它,但据我所知,只有将Android Studio更新为2.4才能定位Android O设备。您还需要将SDK更新到最新版本。因为doc说getFont()在Android O中可用。
答案 3 :(得分:1)
由于它是在O中发布的新方法,因此您必须将开发人员预览作为构建目标来使用它。有关详细信息,请查看此link。
答案 4 :(得分:0)
我这样做是这样的:
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);
希望这会对你有所帮助。
答案 5 :(得分:0)
fonts文件夹应位于assets文件夹下,因此请尝试在那里创建文件夹。
答案 6 :(得分:0)
由于我无法直接从Android Studio创建字体文件夹,因此我使用 Windows资源管理器打开了项目文件夹并创建了字体在app\src\main\assets\
文件夹中,并在那里粘贴我的字体文件。
正如许多其他人在答案中建议我必须使用Android Studio 2.4 Canary才能使用Android O新功能。 documentation州:
只有Android Studio 2.4支持所有新开发者 Android O提供的功能。所以你需要获得金丝雀 Android Studio 2.4版本开始使用Android O SDK。但 您仍然可以安装稳定版本的Android Studio。
答案 7 :(得分:0)
我知道这可能会迟到但是documentation用于在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>
干杯!