这是要求:
例子:
(系统上的默认字体可以是Roboto,也可以不是。)
如何以编程方式获取系统上选定的字体,并且还知道它是否为默认字体?
我知道如果我使用Typeface.DEFAULT,它将为我提供所选的字体。但是我也想知道它是否是默认字体(如所附的屏幕截图所示)。
您可能想研究一下这个Typeface。此类提供了工具,以便您可以知道针对哪种类型选择了哪种字体/字体。
例如看看defaultFromStyle
Typeface.defaultFromStyle(int style)
Run Code Online (Sandbox Code Playgroud)
其中 Style 的值为 Integer,值的变化范围为
int: Value is NORMAL, BOLD, ITALIC, or BOLD_ITALIC
Run Code Online (Sandbox Code Playgroud)
编辑1
经过一番研究后,我发现 Typeface 不提供字体名称。然后我发现这个SO这提供了非常有用的信息,它导致另一个SO具有自定义FontListProvider并声明第一个字体将是默认字体。如果您使用该自定义类,那么找到默认字体将非常容易。
final List<FontListParser.SystemFont> fonts = FontListParser.safelyGetSystemFonts();
String[] items = new String[fonts.size()];
for (int i = 0; i < fonts.size(); i++) {
Log.e("Font",fonts.get(i).name);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
110 次 |
| 最近记录: |