Создать класс,
public class CustomTextView extends TextView {
static Typeface Roboto_Bold = Typeface.createFromAsset(Global.mainActivity.getAssets(), "Roboto-Bold.ttf");
static Typeface Roboto_Regular = Typeface.createFromAsset(Global.mainActivity.getAssets(), "Roboto-Regular.ttf");
и добавьте ниже кода в конструкторах, используйте CustomTextView во всей заявке вместо TextView
try {
int style = getTypeface().getStyle();
if (style == (Typeface.BOLD)) {
isBold = true;
}
} catch (Exception e) {
e.printStackTrace();
}
if (isBold)
this.setTypeface(Roboto_Bold);
else
this.setTypeface(Roboto_Regular);
----- обновляемой,
я недавно что пользовательский шрифт будет храниться в собственной памяти при огромном потреблении памяти. Таким образом, создание шрифта внутри пользовательского класса TextView будет в значительной степени заполнять основную память (в моем случае 300 мегабайт) зависит от количества экземпляров созданного TextView.
Поэтому лучше создать статический объект Typeface которого TextView относится, следовательно, уменьшает потребление памяти (20 Мб в моем случае)
если вы используете Гарнитуры более одного пользовательского вида рассмотрим глобальный статический Typeface
Просто напоминание , Roboto может быть доступна на Android 4.0 и выше. Если вы хотите использовать «пользовательский шрифт», вы должны сделать это программно. – gian1200
Я использую ICS; поэтому, только метод должен делать программно-зависимый ... Основываясь на количестве текстовых просмотров и кнопок, это довольно утомительная задача. – harshal
Если ваша minSdkVersion является ICS (v.14), то, скорее всего, устройства имеют Roboto. Однако это не означает, что это будет шрифт по умолчанию. Говоря о производительности и сводя к минимуму использование памяти и процессора, я предлагаю использовать и повторно использовать статические методы (стиль Singleton) для загрузки шрифта из Assets, чтобы избежать дополнительных распределений. CTRL + C и CRTL + V тоже хорошие друзья: P – gian1200