繁体   English   中英

如何在android中检索可用/已安装字体的列表?

[英]How to retrieve a list of available/installed fonts in android?

在Java中,我会做类似的事情:

java.awt.GraphicsEnvironment ge = 
                      java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment();
Font[] fonts = ge.getAllFonts(); 

有安卓版吗?

摘自 Mark Murphy 在 Android Developers 邮件列表上的回答:

http://developer.android.com/reference/android/graphics/Typeface.html

只有三种字体:normal (Droid Sans)、serif (Droid Serif) 和 monospace (Droid Sans Mono)。

虽然 WebKit 中的某个地方可能隐藏着其他字体,但 WebKit 之外的开发人员似乎无法访问它们。 :-(

唯一的其他字体是您与应用程序捆绑在一起的任何 TrueType 字体。

编辑:Roboto 是 Android 4.0 中的一种新字体。 您可以使用这个库项目在所有版本中使用它回到 API 级别 4 https://github.com/mcalliph/roboto-text-view

关于实际问题,这是一种创建已安装的所有可用字体列表的方法:

String path = "/system/fonts";
File file = new File(path);
File ff[] = file.listFiles();

数组 ff[] 将包含所有字体文件。

android 中只有 3 种字体可用; 正常 (Droid Sans)、衬线 (Droid Serif) 和等宽字体 (Droid Sans Mono)。

应用程序可以包含自己的 truetype 字体,但不能安装它们以供其他应用程序使用。

关于字体的几个链接:

这个答案不是一个程序化的解决方案,但实际的 ttf 字体似乎存储在 /system/fonts 目录中。 使用adb shell ls /system/fonts列出它们,或adb pull /system/fonts将它们全部传输到连接的计算机(adb 将创建一个名为“fonts”的文件夹)。

从 Android 29 开始,为您提供android.graphics.fonts.Font的实际集合,有SystemFonts.getAvailableFonts()

https://developer.android.com/reference/kotlin/android/graphics/fonts/SystemFonts?hl=en#getAvailableFonts()

Android 包括 3 种基本字体,但与 iOS 不同的是,它允许您使用几乎任何您喜欢的字体。 您可以简单地将它嵌入到您的应用程序中,而不是像 Apple 那样受限于预设的字体列表(Apple 不允许字体嵌入)。 挺方便的。

请注意,这是针对 Android 本身,但网络浏览器(包括基本预装的 Android 网络浏览器)确实支持所有标准 HTML 字体。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM