Проблема в вызове Typeface.createFromAsset ().
Я уменьшил это создание фабрики шрифтов, поэтому он вызывает Typeface.createFromAsset () один раз для каждого типа шрифта.
Фабрика шрифтов содержит шрифт в hashmap, и это делает свое дело.
Я нашел решение по этой ссылке и немного подправил:
http://www.levinotik.com/2011/09/22/custom-fonts-in-android-can-cause-issues-heres-how-to-fix-it/
Вот как я это реализовал.
public class FontFactory {
private static FontFactory instance = new FontFactory();
private HashMap<String, Typeface> fontMap = new HashMap<String, Typeface>();
private FontFactory() {
}
public static FontFactory getInstance() {
return instance;
}
public Typeface getFont(String font) {
Typeface typeface = fontMap.get(font);
if (typeface == null) {
typeface = Typeface.createFromAsset(MyApplication.getApplicationContext().getResources().getAssets(), "fonts/" + font);
fontMap.put(font, typeface);
}
return typeface;
}
}