【问题标题】:How to get all font directory font names in andorid?如何在android中获取所有字体目录字体名称?
【发布时间】:2020-01-15 02:43:34
【问题描述】:

我有一个列表,其中包含用户选择的不同字体的文本。 用户可以从此列表中选择所需的字体。

如何以编程方式从 字体目录 获取所有字体名称?

【问题讨论】:

    标签: java android fonts android-resources


    【解决方案1】:

    看这里: 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();
    

    【讨论】:

    • 有什么方法可以从用户设备中的字体文件夹位置获取字体名称?
    • 来自用户设备。
    【解决方案2】:

    如果要获取 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()));
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-19
      • 2013-09-20
      • 2012-11-28
      • 2019-10-02
      • 2014-04-25
      • 1970-01-01
      • 2018-05-06
      相关资源
      最近更新 更多