Delphi Android 字体列表
时间: 2023-11-11 20:30:11 浏览: 151
您可以使用以下代码获取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 手机的字体列表可以使用以下代码:
```delphi
uses
Androidapi.JNI.GraphicsContentViewText,
Androidapi.JNI.JavaTypes;
function GetInstalledFonts: TArray<string>;
var
TypefaceCls: JNIClass;
FontManagerObj: JObject;
GetFamiliesMethod: JNIMethod;
TypefaceArray: TJavaObjectArray<JObject>;
TypefaceObj: JObject;
TypefacesArray: TJavaObjectArray<JObject>;
i, j: Integer;
NameStr: JString;
begin
TypefaceCls := TJTypeface.JavaClass;
FontManagerObj := SharedActivityContext.getSystemService(TJContext.JavaClass.FONT_SERVICE);
GetFamiliesMethod := TypefaceCls.getMethod('getFamilies', [JInteger.JavaClass]);
TypefaceArray := TJTypeface.JavaClass.getFontFamilyFiles;
TypefacesArray := TJTypeface.JavaClass.getAvailableFontFamilyNames(SharedActivityContext);
SetLength(Result, TypefacesArray.Length);
for i := 0 to TypefacesArray.Length - 1 do
begin
TypefaceObj := TypefacesArray.GetRawItem(i);
GetFamiliesMethod.invoke(TypefaceCls, FontManagerObj, TypefaceObj);
for j := 0 to TypefaceArray.Length - 1 do
begin
NameStr := TJString.JavaClass.init(TJString.Wrap(TypefaceArray.GetRawItem(j)));
if NameStr.compareTo(TypefaceObj.toString) = 0 then
begin
Result[i] := JStringToString(NameStr);
Break;
end;
end;
end;
end;
```
这个函数会返回一个字符串数组,其中包含了 Android 手机上安装的所有字体的名称。你可以在你的应用程序中调用这个函数来获取字体列表。
Android Delphi 系统字体
在Android Delphi中,可以通过调用TJTypeface.JavaClass来获取系统字体。具体步骤如下:
1.使用uses Androidapi.JNI.GraphicsContentViewText;导入TJTypeface类。
2.使用下面的代码获取系统字体:
```delphi
var
Typeface: JTypeface;
begin
Typeface := TJTypeface.JavaClass.defaultFromStyle(TJTypeface.JavaClass.NORMAL);
//NORMAL表示正常字体,BOLD表示粗体,ITALIC表示斜体
end;
```
3.使用Typeface对象来设置控件的字体:
```delphi
Label1.Font.Family := JStringToString(Typeface.getFontName);
```
通过上述代码,可以获取系统字体并将其应用于控件上,从而实现自定义字体风格。
阅读全文