Статьи

Совет: Работа с пользовательскими шрифтами в Android O

Первый превью разработчиков Android O здесь!

В этой серии мы рассмотрим некоторые из перспективных функций пользовательского интерфейса, с которыми вы можете начать экспериментировать сегодня, через Android O Developer Preview.

В первом совете я показал вам, как настроить разработку для поддержки этого раннего предварительного просмотра O, и как создавать текст, который автоматически масштабируется и уменьшается в соответствии с текущей конфигурацией экрана. В этом совете мы рассмотрим, как Android O сделает работу с пользовательскими шрифтами без проблем.

Вы когда-нибудь хотели выделить определенный фрагмент текста? Или, может быть, вы были уверены, что нестандартный шрифт будет идеальным способом добавить дополнительную индивидуальность в ваше приложение?

Хотя использование пользовательских шрифтов имеет много преимуществ, работа с ними в Android традиционно была болезненным процессом, требующим от вас использования библиотеки или создания собственного View .

К счастью, работа с пользовательскими шрифтами в Android станет намного проще, поскольку пользовательские шрифты станут полностью поддерживаемым типом ресурса в Android O. Это означает, что добавить пользовательский шрифт в ваше приложение будет так же просто, как и добавить любой другой ресурс. такие как изображения и текст.

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

Android O поддерживает форматы .otf (OpenType) и .ttf (TrueType). Существует множество сайтов, предлагающих такие шрифты бесплатно, поэтому потратьте несколько минут на поиск в Google, пока не найдете нужный вам шрифт.

Поскольку мы просто экспериментируем с новыми функциями Android O, не имеет особого значения, какой шрифт вы используете, но когда вы ищете шрифты для использования в рабочих выпусках вашего приложения, вы всегда должны проверять положения и условия этого шрифта. Тот факт, что ресурс можно загрузить бесплатно, не означает, что нет никаких ограничений на использование и распространение этого ресурса, поэтому всегда проверяйте мелкий шрифт!

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

Найдя шрифт, с которым вы хотите работать, скачайте и распакуйте его. На этом этапе вы должны проверить имя файла шрифта на наличие недопустимых символов — по сути, всего, что не является строчными az, 0-9 или подчеркиванием. Попробуйте добавить любые другие символы, и Android Studio выдаст ошибку, как только вы попытаетесь сослаться на этот ресурс.

Когда у вас есть файлы шрифтов, вам нужно где-то их хранить:

  • Щелкните правой кнопкой мыши папку app / res вашего проекта и выберите « Создать»> «Каталог ресурсов Android» .
  • Откройте выпадающее меню и выберите шрифт .
  • Введите шрифт в качестве имени файла .
  • Нажмите ОК .
Создайте папку resfont в Android Studio
  • Перетащите файлы шрифтов в новую папку res / font .

Вы можете применить собственный шрифт к своему тексту, используя новый атрибут android:fontFamily XML:

1
2
3
4
5
<TextView
 android:text=»This is some text»
 android:layout_width=»wrap_content»
 android:layout_height=»wrap_content»
 android:fontFamily=»@font/doublefeature»/>
Проверьте свой собственный шрифт на вашем Android O AVD

Вы также можете добавить пользовательские шрифты для любых стилей, которые вы создали в своем приложении:

1
2
3
<style name=“headlineFont» parent=»@android:style/TextAppearance.Small»>
   <item name=»android:fontFamily»>@font/doublefeature</item>
</style>

Если вы хотите использовать пользовательские шрифты программно, то вы можете извлечь собственный шрифт с помощью getFont(int) , например:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.LinearLayout.LayoutParams;
import android.graphics.Typeface;
 
public class MainActivity extends AppCompatActivity {
     
  @Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      LinearLayout linearLayout = new LinearLayout(this);
      TextView ProgrammaticallyTextView = new TextView(this);
      ProgrammaticallyTextView.setText(«This is some text»);
       
//Reference your custom font//
       
      Typeface typeface = getResources().getFont(R.font.doublefeature);
      ProgrammaticallyTextView.setTypeface(typeface);
      linearLayout.addView(ProgrammaticallyTextView);
 
      this.setContentView(linearLayout, new LinearLayout.LayoutParams(
              LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
  }
 
}

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

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

Чтобы создать семейство шрифтов:

  • Убедитесь, что вы добавили все файлы шрифтов в папку res / font вашего проекта.
  • Щелкните правой кнопкой мыши папку res / font вашего проекта и выберите « Создать»> «Файл ресурсов шрифта» .
  • Дайте этому файлу имя и нажмите ОК .
  • Откройте этот XML-файл и определите все различные версии этого шрифта вместе с их атрибутами стиля и веса, например:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
<?xml version=»1.0″ encoding=»utf-8″?>
http://schemas.android.com/apk/res/android»>
  <font
       android:fontStyle=»normal»
       android:fontWeight=»400″
       android:font=»@font/doublefeature_regular» />
 
   <font
       android:fontStyle=»italic»
       android:fontWeight=»400″
       android:font=»@font/doublefeature_italic» />
 
 <font
       android:fontStyle=»bold»
       android:fontWeight=»400″
       android:font=»@font/doublefeature_bold» />
 
</font-family>

Затем вы можете ссылаться на любой из шрифтов в этом семействе, используя атрибут android:fontFamily . Например:

1
android:fontFamily=»@font/doublefeature_bold»

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

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

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

А пока посмотрите другие наши учебники по разработке приложений для Android!

  • Android
    Введение в Android вещи
    Пол Требилкокс-Руис
  • Android SDK
    Как звонить и использовать SMS в приложениях для Android
    Чике Мгбемена
  • Android SDK
    Приложения RxJava 2 для Android: RxBinding и RxLifecycle