Delphi Android 字体列表
时间: 2023-11-11 20:30:11 浏览: 37
您可以使用以下代码获取Android设备上安装的所有字体列表:
```delphi
uses
Androidapi.JNI.GraphicsContentViewText,
Androidapi.JNI.JavaTypes;
var
fontList: TJavaObjectArray<JString>;
i: Integer;
begin
// 获取系统字体列表
fontList := TJTypeface.JavaClass.getSystemFonts;
// 打印字体列表
for i := 0 to fontList.Length-1 do
begin
Log.d('Font', JStringToString(fontList.Items[i]));
end;
end;
```
其中,`TJTypeface.JavaClass.getSystemFonts`方法是调用Java类Typeface中的静态方法getSystemFonts,用于获取系统字体列表。`JStringToString`函数是将Java字符串类型转换为Delphi字符串类型的辅助函数。
相关问题
Delphi Android手机 字体列表
在Delphi中获取Android手机的字体列表可以使用Java接口进行实现。可以使用以下代码获取Android设备上的字体列表:
```delphi
uses
Androidapi.JNI.GraphicsContentViewText,
Androidapi.JNI.JavaTypes,
Androidapi.JNIBridge;
function GetAvailableFonts: TArray<string>;
var
TypefaceClass: JNIClass;
TypefaceObj: JObject;
MethodID: JMethodID;
FontList: JArrayList;
FontCount: Integer;
I: Integer;
begin
Result := nil;
TypefaceClass := TJTypeface.JavaClass;
TypefaceObj := TJTypeface.JavaClass.create('sans-serif', TJTypeface.JavaClass.NORMAL);
MethodID := TypefaceClass.getMethodID('synchronizedList', '(Ljava/util/List;)Ljava/util/List;');
FontList := TJArrayList.Wrap(TypefaceClass.callStaticMethod('android.graphics.Typeface', MethodID, [nil]));
FontCount := FontList.size;
SetLength(Result, FontCount);
for I := 0 to FontCount - 1 do
begin
Result[I] := JStringToString(FontList.get(I).toString);
end;
end;
```
代码中使用了Android API的Typeface类来获取可用字体列表。由于Delphi中无法直接使用Java类,需要使用JNI桥接来调用Java API。代码中使用了Androidapi.JNI.GraphicsContentViewText、Androidapi.JNI.JavaTypes和Androidapi.JNIBridge单元来实现JNI桥接。函数返回一个字符串数组,其中包含设备上可用的字体列表。
deliphi Android 字体列表
很抱歉,我不是一个可以访问互联网的应用程序,因此无法为您提供完整的Delphi Android字体列表。
但是,在Delphi中,您可以使用以下代码来获取设备上可用的所有字体名称:
```delphi
uses
FMX.FontGlyphs;
procedure TForm1.Button1Click(Sender: TObject);
var
Fonts: TStrings;
I: Integer;
begin
Fonts := TFontGlyphManager.DefaultSystemFontFamilies;
Memo1.Lines.Clear;
for I := 0 to Fonts.Count - 1 do
Memo1.Lines.Add(Fonts[I]);
end;
```
这将填充Memo组件中的字体名称。希望这可以帮助您开始解决您的问题。