我一直在寻找提高Android开发技能的方法......因此这个问题。
您是否预见到应用程序正在使用不同字体时静态存储Typeface的任何可能缺点或优点?
优点:
缺点:
我的“TypeFace”cacher:
public static synchronized Typeface getFontType (String fontFile)
{
if (!smTypefaces.contains(fontFile)) {
try {
Typeface tf = Typeface.createFromAsset(getContext().getAssets(), "fonts/"+fontFile);
if (null != tf) {
// todo use maybe a weak reference?
smTypefaces.put(fontFile, tf);
}
} catch (RuntimeException e) {
e.printStackTrace();
}
}
return smTypefaces.get(fontFile);
}
答案 0 :(得分:2)
我正是这样做的,而且我从未遇到过相关的内存问题。我创建了一个名为FontProvider的类,它延迟加载一个静态Map,其中键是一个字符串常量,值是Typeface的实例。我通过get(String key)方法公开地图,如果键不在地图中,则返回null。