Delphi 安卓手机可用字体列表
时间: 2023-10-20 22:05:30 浏览: 32
在 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 设备上使用,因此在选择字体时需要谨慎。
相关问题
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 Android 字体列表
您可以使用以下代码获取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字符串类型的辅助函数。