【发布时间】:2020-01-15 02:43:34
【问题描述】:
我有一个列表,其中包含用户选择的不同字体的文本。 用户可以从此列表中选择所需的字体。
如何以编程方式从 字体目录 获取所有字体名称?
【问题讨论】:
标签: java android fonts android-resources
我有一个列表,其中包含用户选择的不同字体的文本。 用户可以从此列表中选择所需的字体。
如何以编程方式从 字体目录 获取所有字体名称?
【问题讨论】:
标签: java android fonts android-resources
看这里: how-to-retrieve-a-list-of-available-installed-fonts-in-android
另一种快速的方法是检索它们始终位于 system/fonts 中的 android 系统字体
String path = "/system/fonts";
File file = new File(path);
File ff[] = file.listFiles();
【讨论】:
如果要获取 main->res->font 目录中的所有字体
试试这样的:
科特林
val fontFields = R.font::class.java.fields
val fonts = arrayListOf<Int>()
for (field in fontFields) {
try {
Log.i("TAG", field.name)
fonts.add(field.getInt(null))
} catch (e: Exception) {
e.printStackTrace()
}
}
for(font in fonts){
val typeface = appContext.resources.getFont(font)
println(typeface.isBold)
}
Java
Field[] fontFields = R.font.class.getFields();
ArrayList<Integer> fonts = new ArrayList<>();
for (Field field : fontFields) {
try {
Log.i("TAG", field.getName());
fonts.add(field.getInt(null));
} catch (Exception e) {
e.printStackTrace();
}
}
for (int font : fonts){
Typeface typeFace = appContext.getResources().getFont(font);
Log.i("TAG", String.valueOf(typeFace.isBold()));
}
【讨论】: