fmx Android获取系统字体列表
时间: 2023-08-28 14:05:24 浏览: 137
在 FireMonkey 应用程序中,您可以使用 TFontDialog 组件来选择字体,但是它不提供获取系统字体列表的方法。不过,您可以通过调用 Java 代码来获取 Android 系统中的字体列表。以下是获取系统字体列表的示例代码:
```
uses
Androidapi.Helpers,
Androidapi.JNI.GraphicsContentViewText,
Androidapi.JNI.JavaTypes;
function GetSystemFontList: TArray<string>;
var
TypefaceClass: JNIClass;
FontManager: JNIClass;
FontList: JArrayList;
i: Integer;
begin
TypefaceClass := TJTypeface.JavaClass;
FontManager := TJTypeface.JavaClass.getDeclaredField('sSystemFontMap').getType;
FontList := TJArrayList.Wrap(FontManager.getDeclaredMethod('values').invoke(nil, nil));
SetLength(Result, FontList.size);
for i := 0 to FontList.size - 1 do
Result[i] := JStringToString(FontList.get(i).toString);
end;
```
这个函数返回一个字符串数组,其中包含系统中可用的字体名称。请注意,此代码需要使用 Androidapi.JNI 单元和 Androidapi.JNI.GraphicsContentViewText 单元中的类和方法。您可能需要在项目选项中添加这些单元。
希望这些信息对您有所帮助。如果您有任何其他问题,请随时提出。
阅读全文