Delphi 获取手机字体名称
时间: 2023-12-13 07:06:02 浏览: 30
您可以使用以下代码来获取手机当前使用的字体名称:
```delphi
uses
FMX.Platform, FMX.Graphics;
function GetSystemFontName: string;
var
PlatformServices: IFMXSystemFontServices;
begin
if TPlatformServices.Current.SupportsPlatformService(IFMXSystemFontServices, IInterface(PlatformServices)) then
Result := PlatformServices.GetDefaultFontFamilyName
else
Result := TFontManager.DefaultFont.Family;
end;
```
这个函数使用了 FireMonkey 平台的 IFMXSystemFontServices 接口,该接口提供了获取系统字体信息的方法。注意,这个函数只能在移动设备上使用。如果在桌面平台上使用,可能会返回默认字体的名称。
相关问题
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桥接。函数返回一个字符串数组,其中包含设备上可用的字体列表。
Delphi 安卓手机可用字体列表
在 Delphi 中,可以使用以下代码获取当前 Android 设备支持的字体列表:
```
uses
Androidapi.JNI.GraphicsContentViewText,
Androidapi.JNI.JavaTypes;
procedure TForm1.Button1Click(Sender: TObject);
var
Typeface: JTypeface;
FontNames: TJavaObjectArray<JString>;
I: Integer;
begin
Typeface := TJTypeface.JavaClass.DEFAULT;
FontNames := Typeface.Families;
for I := 0 to FontNames.Length - 1 do
Memo1.Lines.Add(JStringToString(FontNames.GetRawItem(I)));
end;
```
这段代码会将当前设备支持的所有字体名称显示在 Memo 控件中。你可以根据需要在应用程序中使用这些字体。需要注意的是,不是所有的字体都能在所有的 Android 设备上使用,因此在选择字体时需要谨慎。