Advertisement
  1. Code
  2. Android SDK

Совет: Работаем со своими шрифтами в Android O

Scroll to top
Read Time: 5 min
This post is part of a series called Quick Tips: New UI Features in Android O.
Quick Tip: Create Autosizing Text With Android O
Quick Tip: Introducing Android O’s Adaptive Icons and Pinned Shortcuts

() translation by (you can also view the original English article)

А вот и первая предварительная версия Android O!

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

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

Добавление ваших шрифтов в проект

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

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

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

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

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

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

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

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

Так как у вас есть файл(ы) шрифтов, вам надо будет где-то их хранить:

  • Правый клик по папке app/res вашего проекта и выберите New > Android resource directory.
  • Откройте выпадающее меню и выберите font.
  • Введите font в File name.
  • Нажмите OK.
Create a resfont folder in Android StudioCreate a resfont folder in Android StudioCreate a resfont folder in Android Studio
  • Переместите файлы вашего шрифта в новую папку res/font.

Использование своих шрифтов

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

1
<TextView
2
  android:text="This is some text"
3
  android:layout_width="wrap_content"
4
  android:layout_height="wrap_content"
5
  android:fontFamily="@font/doublefeature"/>
Test your custom font on your Android O AVD Test your custom font on your Android O AVD Test your custom font on your Android O AVD

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

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

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

1
import android.support.v7.app.AppCompatActivity;
2
import android.os.Bundle;
3
import android.widget.LinearLayout;
4
import android.widget.TextView;
5
import android.widget.LinearLayout.LayoutParams;
6
import android.graphics.Typeface;
7
8
public class MainActivity extends AppCompatActivity {
9
    
10
  @Override
11
  protected void onCreate(Bundle savedInstanceState) {
12
      super.onCreate(savedInstanceState);
13
      LinearLayout linearLayout = new LinearLayout(this);
14
      TextView ProgrammaticallyTextView = new TextView(this);
15
      ProgrammaticallyTextView.setText("This is some text");
16
      
17
//Reference your custom font//

18
      
19
      Typeface typeface = getResources().getFont(R.font.doublefeature);
20
      ProgrammaticallyTextView.setTypeface(typeface);
21
      linearLayout.addView(ProgrammaticallyTextView);
22
23
      this.setContentView(linearLayout, new LinearLayout.LayoutParams(
24
              LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
25
  }
26
27
}

Создание семейства шрифта

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

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

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

  • Убедитесь, что вы добавили все файлы шрифта в папку res/font вашего проекта.
  • Щелкните правой кнопкой мыши по папке res/font вашего проекта и выберите New > Font resource file.
  • Дайте этому файлу имя и нажмите OK.
  • Откройте этот XML-файл и определите все различные версии этого шрифта, а также их атрибуты стиля и веса, например:
1
<?xml version="1.0" encoding="utf-8"?>
2
https://schemas.android.com/apk/res/android">
3
  <font
4
       android:fontStyle="normal"
5
       android:fontWeight="400"
6
       android:font="@font/doublefeature_regular" />
7
8
   <font
9
       android:fontStyle="italic"
10
       android:fontWeight="400"
11
       android:font="@font/doublefeature_italic" />
12
13
 <font
14
       android:fontStyle="bold"
15
       android:fontWeight="400"
16
       android:font="@font/doublefeature_bold" />
17
18
</font-family>

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

1
android:fontFamily="@font/doublefeature_bold"

Не забудьте протестировать!

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

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

Заключение

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

В то же время ознакомьтесь с некоторыми из наших других руководств по разработке приложений для Android!

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.