如何从资源获取文件?

时间:2019-09-03 11:14:53

标签: java

我将字体文件* .ttf保存在资源中,我想在启动应用程序时将其取回,但我不能这样做。我有以下代码:

final URL fontUrl = getClass().getClassLoader().getResource("/fonts/" + font);
                if (fontUrl == null) {
                    continue;
                }
                File fontFile = new File(fontUrl.getFile());
System.out.println(fontFile.exists());    // return false
System.out.println(fontFile.length());    // return 0
return fontFile;

如何从资源中获取普通文件?

1 个答案:

答案 0 :(得分:1)

您是否已将其放置在资产文件夹中?如果您希望在TextView等中使用它,

  Typeface typeface = Utils.getTypeface(context, textStyle);
    if (typeface != null) setTypeface(typeface);

,Utils文件中的功能为:

public static Typeface getTypeface(Context context, int textStyle) {
    try {
        String font = "fonts/font-file-name.ttf"
        Typeface myTypeface = Typeface.createFromAsset(context.getAssets(), font);
        return myTypeface;
    } catch (Exception e) {
        Log.d(Constants.TAG, "OpenSansTextView init: ");
        e.printStackTrace();
    }
    return null;
}

我的ttf文件的位置:

app\src\main\assets\fonts\font-file-name.ttf