Russian (Pусский) translation by Ellen Nelson (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.

Переместите файлы вашего шрифта в новую папку res/font.
Использование своих шрифтов
Вы можете применить свой шрифт к тексту, используя новый XML атрибут android:fontFamily
:
<TextView android:text="This is some text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:fontFamily="@font/doublefeature"/>

Вы можете добавить пользовательский шрифт к любым стилям, которые вы создали в приложении.
<style name=“headlineFont" parent="@android:style/TextAppearance.Small"> <item name="android:fontFamily">@font/doublefeature</item> </style>
Если вы хотите использовать свой шрифт программно, когда вы можете извлечь ваш шрифт используя метод getFont(int)
, например:
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 вашего проекта и выберите New > Font resource file.
- Дайте этому файлу имя и нажмите OK.
- Откройте этот XML-файл и определите все различные версии этого шрифта, а также их атрибуты стиля и веса, например:
<?xml version="1.0" encoding="utf-8"?> https://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
. Например:
android:fontFamily="@font/doublefeature_bold"
Не забудьте протестировать!
В то время, как легко увлечься новыми функциями, не заходите за рамки пользовательских шрифтов! Согласованные UI легче в навигации и понимании, а если ваше приложение постоянно переключается между шрифтами, тогда ваши пользователи скорее обратят больше внимание на то, как выглядит ваш текст, а не на то, что о чем он говорит.
Если вы добавляете пользовательские шрифты в свой проект, важно проверить, как этот шрифт отображается в широком диапазоне различных конфигураций экрана, поскольку вашим главным приоритетом всегда должна быть удобочитаемость текста.
Заключение
В этом совете я показала вам, как создать более стильный и уникальный текст, добавив пользовательские шрифты в свои проекты. В заключительном посте этой серии мы переведём наш фокус с текста на изображения, так как я покажу вам, как создавать адаптивные значки запуска, которые автоматически адаптируют свою форму в соответствии с текущим устройством.
В то же время ознакомьтесь с некоторыми из наших других руководств по разработке приложений для Android!
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.
Update me weeklyEnvato Tuts+ tutorials are translated into other languages by our community members—you can be involved too!
Translate this post