【问题标题】:How use Android supplied (custom) fonts?如何使用 Android 提供的(自定义)字体?
【发布时间】:2015-02-16 12:52:07
【问题描述】:

根据Android Typography 页面,Roboto 字体被引入 Ice Cream Sandwich。我可以在那里下载.ttf 文件,或者我可以在<android-sdk>/platforms/android-x/data/fonts 目录(其中x 是ICS 版本及更高版本)中找到它(以及许多其他文件)。

如果我想在我的应用程序中实际使用此字体,是否仍需要将其复制到我的assets/fonts 目录并设置类似this 的字体,或者是否有其他方法可以在我的布局 XML 文件中访问它?

编辑:

为了澄清这个问题,我的意思是 任何 Android 提供的字体。因此,如果您查看 Android Lollipop 的字体文件夹 (android-sdk/platforms/android-21/data),就会发现很多新字体。

假设我想在一个布局中使用Roboto-Italic TextView 和(比如说)在另一个布局中使用NotoSerif-Bold。我可以在我的 XML 布局文件中使用 android:typeface="..." 指定它,还是需要手动将所需的 .ttf 文件复制到我的字体文件夹并子类化 TextView 小部件?

【问题讨论】:

  • 你可以检查我的答案,用那个代码你可以做到这一点,不要忘记检查是否正确。
  • 感谢阿德里安...我将凯文的回答标记为与他在您之前回答的一样正确 :(.. 你们基本上都回答了我的问题,我必须选择一个...不过我对每个人都投了赞成票!真的很感谢你的帮助

标签: android fonts textview android-assets android-sdk-2.3


【解决方案1】:

您好,您需要在 TextView 上设置字体,如下所示:

Typeface yourTypeface = Typeface.createFromAsset(getContext().getAssets(), "fonts/" + fontName + ".ttf");
yourTextView.setTypeface(yourTypeface);

【讨论】:

  • 感谢您的帮助。所以我认为我仍然必须将适当的.tff 文件复制到我的项目的assets/fonts 目录中吗?
  • 是的,您需要的所有 .ttf 文件都会放在那里 :)
  • 好的,谢谢。奇怪的是,如果我正在为棒棒糖及更高版本开发,我实际上无法指定这些字体(我知道它们安装在手机上的某个地方!)。相反,我必须复制文件并手动创建Typeface 类型。
  • 这里有一个下载官方Roboto的链接google.com/design/spec/style/typography.html
【解决方案2】:

Android 4.0 及更高版本已默认使用 Roboto 字体,因此您无需执行任何操作。

【讨论】:

  • 嗨..感谢您的帮助。我在我的问题中添加了更多细节以更好地澄清它。很抱歉有歧义。
  • 在这种情况下,请使用@Adrian 的答案。您必须将 TTF 文件复制到您的项目中。见this question
【解决方案3】:

如果你想将 Roboto 设置为你的字体,你必须验证你的版本是什么,如果你有 Android

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

TextView text = (TextView) findViewById(R.id.text);
text.setTypeface(font);

但是如果你的版本是 JonasCz 所说的 4.0 或更高版本,则没有必要,你可以在https://developer.android.com/design/style/typography.html 阅读更多相关信息

注意:将字体复制到资产/字体。此代码对于在视图中放置任何字体也很有用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多