Чи можу я вставити власний шрифт у програму Android?


77

Я хотів би, щоб додаток містив спеціальний шрифт для відтворення тексту, завантажував його, а потім використовував із стандартними елементами, такими як StaticText. Чи можливо це?

Відповіді:


140

Так, ви можете, ви не можете визначити його у макетах xml. Вам потрібно використовувати його щоразу динамічно. Перевірте цей підручник , наприклад.

Якщо посилання мертве, ось підсумок:

  • Отримайте файл шрифту типу times.otf
  • Введіть його у папку об’єктів, у папку "шрифти"
  • Отримайте посилання на TextView приблизно таким чином:

    TextView tv = (TextView) findViewById(R.id.myCustomTVFont);
    
  • Візьміть шрифт із папки активу:

    Typeface tf = Typeface.createFromAsset(getAssets(), "fonts/times.otf");
    
  • Зробіть ваш TextView чудовим:

    tv.setTypeface(tf);
    

11
Сподіваюся, підручник одного разу не зникне.
Мартін

Як справедливо зазначив Мартін, це потрібно трохи відредагувати, на випадок, якщо посилання вимерло.
Сефі

Цей підручник мені допоміг. Це остаточне рішення моєї проблеми :)
Джей Маю

Спробував на пристрої API 2.1. Не працював добре. Я думаю, можливо мій шрифт був великим і викликав проблеми з пам'яттю. Або подібні. Я щойно знайшов щось, що може бути виправленням: stackoverflow.com/a/5941665/129202
Джонні

1
Копія оригінального підручника: web.archive.org/web/20140115015420/http://…
Боб,

3

Починаючи з Android 8.0 (рівень API 26), ви можете використовувати шрифти в XML. Дивіться документацію тут .


2

Ви також можете заглянути в цю тему , щоб встановити власні шрифти для всіх подань у вашій діяльності.


1
Як і в іншій відповіді на це запитання, було б дуже зручно, якби важливий вміст теми знаходився всередині питання, на випадок, якщо посилання одного разу помре.
StackExchange What The Heck
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.