В моем коде есть серьезная проблема, в которой я загружаю шрифт в свою папку assets\fonts\
из пользовательского класса TextView
. Первая проблема заключается в том, что он сбой на 4.0 устройствах с исключением Caused by: java.lang.RuntimeException: native typeface cannot be made
. Я использовал тот же самый процесс here с помощью метода:RuntimeException: собственный шрифт не может быть создан или утечка памяти для пользовательского шрифта загрузки TextView
public class MyTextView extends TextView {
public MyTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
public MyTextView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MyTextView(Context context) {
super(context);
}
public void setTypeface(Typeface tf, int style) {
if (style == Typeface.BOLD) {
super.setTypeface(Typeface.createFromAsset(
getContext().getAssets(), "fonts/hirakakupronbold.ttf"));
} else if (style == Typeface.ITALIC) {
super.setTypeface(Typeface.createFromAsset(
getContext().getAssets(), "fonts/hirakakupronitalic.ttf"));
} else {
super.setTypeface(Typeface.createFromAsset(
getContext().getAssets(), "fonts/hirakakupron.ttf"));
}
}
}
Обратите внимание, что я использую расширение .ttf
, и я обнаружил, что это вызывает RunTimeException
. Поэтому я преобразовал соответствующие шрифты с расширениями .otf
, и теперь он работает уже в 4.0 устройствах, но имеет утечки памяти на основе here. Есть обходные пути here, но я не знаю, как их использовать/называть. Любая помощь поможет, спасибо.
большое спасибо! это помогло мне! – Ilario