В android Как применить шрифт для всего приложения?

Я хочу применить некоторый шрифт, скажем Times New Roman, только к моему приложению. Не для всей системы, а не для конкретного вида. Насколько я знаю

Чтобы применить шрифт к определенному виду, мы храним файл шрифта в папке с ресурсами и входим в приложение, как показано ниже.

1] Typeface mFace = Typeface.createFromAsset(getContext().getAssets(), "fonts/samplefont.ttf"); textView.setTypeface(mFace); 2] To apply font to whole application I can replace the DroidSans.ttf file with my font file. 

Я могу использовать первый способ применения шрифта к моему приложению, но это не будет хорошим решением, потому что мне нужно изменить везде, и я не хочу этого делать, если есть лучший способ.

Solutions Collecting From Web of "В android Как применить шрифт для всего приложения?"

Проверьте это, чтобы определить стили шрифтов . Кроме того, вы можете ссылаться на этот стиль из файла манифеста на уровне приложения

 <application android:theme="@style/Theme1"> 

Я создал собственный виджет для текстового вида, и в конструкторах был вызван этот код:

 public static void SetCustomFont (TextView t, String fontName, Context c) { Typeface tf = Typeface.createFromAsset(c.getAssets(), fontName); t.setTypeface(tf); } 

Я использую один и тот же шрифт для всего приложения, поэтому я помещаю его в constuctor, а затем выполнял глобальный поиск / замену для TextView

Android не обеспечивает значительной поддержки при установке шрифтов во всем приложении (см. Эту проблему). У вас есть 4 варианта установки шрифта для всего приложения:

  • Вариант 1: применить отражение для изменения системного шрифта
  • Вариант 2: создавать и подклассы пользовательских классов View для каждого представления, для которого требуется собственный шрифт
  • Вариант 3: Внедрение искателя представления, который пересекает иерархию представлений для текущего экрана
  • Вариант4: используйте стороннюю библиотеку.

Подробности этих опций можно найти здесь .