android 获取系统字体
时间: 2023-10-10 11:15:44 浏览: 40
要获取Android系统中的字体,可以使用以下代码:
```java
Typeface typeface = Typeface.create("sans-serif", Typeface.NORMAL);
```
在上面的代码中,“sans-serif”是字体家族的名称,“Typeface.NORMAL”是字体的样式,可以根据需要进行更改。你可以将此代码放入你的Android应用程序中,以获取系统中的字体。
相关问题
android获取系统字体列表
要获取 Android 系统中的字体列表,可以使用以下代码:
```java
public class FontListActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_font_list);
ListView listView = findViewById(R.id.font_list_view);
final List<String> fontList = new ArrayList<>();
// 获取系统字体列表
String[] fontNames = getResources().getStringArray(R.array.system_fonts);
// 将字体名添加到列表中
Collections.addAll(fontList, fontNames);
// 设置列表适配器
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, fontList);
listView.setAdapter(adapter);
}
}
```
其中,`R.array.system_fonts` 是一个存储系统字体名称的字符串数组,需要在 `strings.xml` 文件中进行定义。例如:
```xml
<string-array name="system_fonts">
<item>Default</item>
<item>Droid Sans</item>
<item>Droid Serif</item>
<item>Droid Sans Mono</item>
<item>Roboto</item>
<item>Roboto Condensed</item>
<item>Roboto Light</item>
<item>Roboto Medium</item>
<item>Roboto Thin</item>
<item>Roboto Black</item>
</string-array>
```
当然,如果你需要获取系统所有字体的详细信息,可以使用 `Typeface` 类中的 `getFamilies()` 方法,该方法会返回一个包含所有字体家族的数组。例如:
```java
Typeface[] typefaces = Typeface.getFamilies();
for (Typeface typeface : typefaces) {
String familyName = typeface.getFamilyName();
Log.d(TAG, "Font family name: " + familyName);
}
```
fmx Android获取系统字体列表
在 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 单元中的类和方法。您可能需要在项目选项中添加这些单元。
希望这些信息对您有所帮助。如果您有任何其他问题,请随时提出。