Android API中的自定义字体低于16?

Posted

技术标签:

【中文标题】Android API中的自定义字体低于16?【英文标题】:Custom fonts in Android API below 16? 【发布时间】:2014-10-01 11:16:21 【问题描述】:

我正在开发我的第一个大于一个活动的 android 应用程序。

我读过这个:

Android 4.1 添加了更多 Roboto 字体样式的变体,用于 共有 10 个变体,它们都可以被应用程序使用。您现在的应用 可以访问全套轻量级和浓缩型变体。

(这里:link)

我也在某处读到,我可以使用自定义 TTF 字体。

是否意味着,低于 4.1(API 16)的 Android API 不能支持自定义字体?

我必须使用 API 16 或更高版本吗?我现在有 4.0.4 的手机,我还不想扔掉它......

【问题讨论】:

【参考方案1】:

不要扔掉你的手机!您当然可以使用低于 API 级别 16 的自定义字体。

首先将您的字体(ttf 文件)添加到您的/assets 文件夹,然后执行以下操作:

Typeface typeface  = Typeface.createFromAsset(getAssets(), "myfont.ttf");
myTextView.setTypeface(typeface);

http://developer.android.com/reference/android/widget/TextView.html#setTypeface(android.graphics.Typeface)

它从 API 级别 1 开始就存在了。

您问题中的字体无需包含任何字体文件即可使用 - 它们不是“自定义”的,而是内置在平台中并可供所有人使用。

【讨论】:

嗯,对所有 TextView 和其他对象都这样做有点痛苦。我想没有办法将字体应用于整个活动......我是对的吗?当我对所有对象执行一些 for 循环时,我担心活动初始化性能会受到影响。 你可以试试这个方法:***.com/questions/2711858/…我已经按照上面的方法做了,也不是太痛苦。只需重用您的字体对象。

以上是关于Android API中的自定义字体低于16?的主要内容,如果未能解决你的问题,请参考以下文章

针对特定 API 级别的自定义 Android/Flutter 版本

如何为android中的所有视图使用相同的自定义字体?

android中listvliew中的自定义字体Text-View

Xamarin 表单:UWP 和 Windows 8.1 中的自定义字体

使用 CSS 修复自定义字体行高

Android中的默认字体系列是啥?