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

时间:2010-08-20 15:32:10

标签: java android fonts

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

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

是否有Android等价物?

5 个答案:

答案 0 :(得分:40)

取自Mark Murphy在Android Developers邮件列表中的回答:

  

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

     

只有三种字体:正常   (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

答案 1 :(得分:16)

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

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

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

答案 2 :(得分:8)

只有3种字体可用作android的一部分;正常(Droid Sans),衬线(Droid Serif),  和monospace(Droid Sans Mono)。

应用可以包含自己的truetype字体,但无法安装它们以供其他应用使用。

关于字体的几个链接:

答案 3 :(得分:0)

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

答案 4 :(得分:-4)

Android包含3种基本字体,但与iOS不同,您可以使用任何您喜欢的字体。您可以简单地将其嵌入到您的应用中,而不是像Apple那样限制预设的字体列表(Apple不允许使用字体嵌入)。非常方便。

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