如何从 ExternalStorage 和多字体设置字体

How to set typeface from ExternalStorage and multi font

我在 ExternalStorageDirectory 中创建了一个字体列表,并将其保存到 :

ArrayList<String> list = new ArrayList<String>();

如何将 textView 中的字体从 fonts 设置为 myFolder?

此代码仅将字体设置为目录中的一种字体

String root_sd = Environment.getExternalStorageDirectory().toString();
File name = new File(root_sd + "/myFolder/");
File[] files = name.listFiles();
for (int i = 0; i < files.length; i++){

    Typeface typeface = Typeface.createFromFile(files[i].getPath());
    textView.setTypeface(typeface);
    textView.setTextSize(20);

}

这是根据您的代码在 3 个不同的 textView 中使用 3 个不同字体的示例。您可以试试这个而不是删除循环。

String root_sd = Environment.getExternalStorageDirectory().toString();
File name = new File(root_sd + "/myFolder/");
File[] files = name.listFiles();

Typeface typeface = Typeface.createFromFile(files[0].getPath());
textView.setTypeface(typeface);
textView.setTextSize(20);

Typeface typeface2 = Typeface.createFromFile(files[1].getPath());
textView2.setTypeface(typeface2);
textView2.setTextSize(20);

Typeface typeface3 = Typeface.createFromFile(files[2].getPath());
textView3.setTypeface(typeface3);
textView3.setTextSize(20);

我设置了字体列表代码:

public static ArrayList<String> getPersianFonts(Context context) {
        ArrayList<String> list = new ArrayList<String>();
    try {
        String root_sd = Environment.getExternalStorageDirectory().toString();
        File name = new File(root_sd + "/myFolder/");
            File[] files = name.listFiles();
            for (int i = 0; i < files.length; i++){
                list.add( files[i].getName() );
            }
            return list;

    } catch  (Exception e)  {
        e.printStackTrace();
    }
    return list;
}  

现在已经从列表中获取字体并设置为 textView 了??