- Начало работы с Google Fonts для Android (бета-версия)
- Какие шрифты можно использовать?
- Какие версии Android поддерживаются?
- Как начать работу?
- Формат запроса
- Безопасность
- Использование Downloadable Fonts в приложении
- Как это работает?
- Реализация
- Через Android Studio
- orbitron.xml
- preloaded_fonts.xml
- font_certs.xml
- Как использовать загружаемые шрифты на старых устройствах?
- Программное добавление загружаемых шрифтов
- Заключение
- Google Sans
- Категории шрифтов
Начало работы с Google Fonts для Android (бета-версия)
Android O и Android Support Library 26 добавили поддержку загружаемых шрифтов (Downloable Fonts).
Google Fonts доставляет бета-сборку нашего Font Provider в сервис Google Play. Для раннего доступа вам необходимо зарегистрироваться в общедоступно бета-версии Google Play.
Какие шрифты можно использовать?
Можно использовать всю коллекцию Google Fonts Open Source. Просмотреть её можно здесь.
Какие версии Android поддерживаются?
Бета-провайдер поддерживает Android N (API 24) и выше. Он может использоваться с бета-версией Android Support Library 26 или с ранними версиями Android O.
Этим летом, наряду с Android Support Library 26 и Android O, состоится выход из беты и будет реализована поддержка Android Jelly Bean (API 16) и выше. Это охватит 95%+ устройств в дикой природе.
Как начать работу?
- Посмотрите демонстрационное приложение.
- Запустите его в Android Studio 3.0 Canary 1.
- Создайте приложение с целевым SDK на Android O или используйте supportlib 26 beta.
- Выберите TextView.
- В свойствах найдите fontFamily и выберите «More fonts».
- Просмотрите всю коллекцию Google Fonts.
- Android Studio соединит это всё вместе!
- Используйте Google Fonts декларативно или программно, как показано в разделе Downloable Fonts.
Формат запроса
Чтобы запросить шрифт от провайдера Google Fonts, используйте следующий формат запроса:
Параметр | Обязателен? | Пределы | Тип данных | Значение по умолчанию |
name | Да | Любое имя из fonts.google.com | string | |
width | Нет | > 0 | float | 100 |
weight | Нет | От 0 до 1000 исключительно | int | 400 |
italic | Нет | От 0 до 1 включительно | float | 0 |
besteffort | Нет | true/false | boolean | true |
Если besteffort равен true и ваш запрос указывает на существующее семейство шрифтов, но запрашиваемые ширина/вес/значение курсива не поддерживаются, то провайдер вернёт наилучшее соответствие, которое можно найти в семействе. Например, запрос для Oswald с весом 900 вернёт Oswald с весом 700.
Безопасность
Для безопасности вы должны указать подпись приложения, предоставляющего провайдер, из которого вы хотите запросить шрифты. Android Studio добавить правильную подпись для вас.
Источник
Использование Downloadable Fonts в приложении
Ранее мы писали о том, Google добавили в Android поддержку шрифтов из своего каталога Google Fonts. В этой статье мы подробно рассмотрим, как можно это реализовать в своём приложении.
Благодаря Google Fonts вы можете использовать тысячи самых разных шрифтов в своих приложениях. Более того, эта возможность теперь распространяется не только на Android O (API 26), но также на все устройства, начиная с API 14, благодаря использованию библиотеки поддержки.
Использование загружаемых шрифтов несёт в себе следующие преимущества:
- уменьшение размера APK (вам не нужно включать в проект .ttf файлы со шрифтами);
- приложение на устройстве пользователя могут совместно использовать шрифты из одного источника, не раздувая хранилище избыточными файлами.
Как это работает?
Благодаря встроенной поддержке шрифтов, особенно подчёркивается второй пункт. Например, ниже представлена схема, по которой разные приложения могут пользоваться общими шрифтами.
По этой схеме можно увидеть, что приложения, запрашивающие шрифты, обращаются к одному поставщику, указав контракт на шрифт. Поэтому если одно приложение уже запросило шрифт, другие приложения не будут запускать загрузку и сразу получат шрифт из кеша.
Такая схема необходима, чтобы система не вносила вредоносного кода в файлы.
Реализация
В приложении Фонарик используется таймер со специальным шрифтом, который хранится в папке assets проекта. Чтобы уменьшить размер APK файла, перепишем приложение, используя загружаемые шрифты.
Добавить загружаемые шрифты в своё приложение можно двумя способами.
Через Android Studio
Чтобы добавить таким способом, перейдём на разметку с виджетом, шрифт которого нужно изменить. На вкладке Design нужно кликнуть по виджету, затем в свойствах найти fontFamily и выбрать More fonts…
Откроется окно со списком всех шрифтов, доступных в Google Fonts, где можно выбрать любой понравившийся. Выберем шрифт Orbitron и нажмём ОК. Важно здесь выбрать именно Create downloable font, поскольку Add font to project просто добавит шрифт в проект, что противоречит текущей цели.
После этого Android Studio сама создаст необходимые файлы. В папке res/font будет создан файл orbitron.xml, в папке res/values файлы preloaded_fonts.xml и font_certs.xml.
orbitron.xml
Этот файл содержит определения для Android о семействе шрифтов. Как вы можете видеть, в нём перечислены fontProvider, fontProviderCerts, которые были автоматически созданы в Android Studio.
preloaded_fonts.xml
Android Studio создаёт этот файл, чтобы помочь предварительно загрузить шрифты. Это нужно, чтобы избежать задержки, когда шрифт не отображается при старте приложения. Рендеринг картинки является синхронным процессом, поэтому первый рендер может занять некоторое время, пока Android загружает шрифт. Объявление этого файла в манифесте нужно для того, чтобы приложение получило шрифт в начале работы, до отрисовки экрана.
Android Studio сама добавляет в манифест метатег, содержащий путь до файла preloaded_fonts.xml.
font_certs.xml
Этот файл содержит огромные зашифрованные сертификаты, которые проверяют шрифты.
Теперь мы может просто указать в разметке у любого виджета свой шрифт в атрибуте fontFamily и увидеть результат.
Здесь новый шрифт используется только у одного виджета. Если вы хотите поменять шрифт всего приложения, вам нужно перейти в styles.xml и добавить его в тему вашего приложения.
Как использовать загружаемые шрифты на старых устройствах?
Для этого вам нужно добавить библиотеку поддержки в файл build.gradle модуля приложения.
Кроме того, библиотека поддержка была перенесена в maven репозиторий Google, поэтому вам больше не нужен SDK Manager для загрузки библиотеки. Чтобы добавить maven репозиторий Google, добавьте следующую строку в repositories файла build.gradle модуля проекта.
Программное добавление загружаемых шрифтов
Чтобы добавить шрифт программно, нам понадобятся два класса:
- FontRequest для создания запроса на получение шрифта
- FontsContract для создания объекта Typeface после получения результата запроса шрифта
Приложение будет извлекать шрифты из провайдера с помощью API FontsContract. У каждого провайдера есть свой собственный набор ограничений на версии Android и язык запросов, который он поддерживает.
Итак, для начала создадим экземпляр класса FontRequest.
В параметрах указываются:
- Владелец провайдера шрифтов
- Пакет провайдера шрифтов для проверки личности провайдера
- Строка запроса шрифта. О том, как формируется запрос, мы писали здесь.
- Список сертификатов. Необязателен, если вы запрашиваете шрифты из предустановленных провайдеров, однако необходим, если используется библиотека поддержки.
Затем нужно создать экземпляр класса FontsContractCompat.FontRequestCallback, чтобы получить результат выполнения запроса в виде объекта Typeface или же сообщение об ошибке в случае неудачи.
Теперь достаточно вызвать метод FontsContract.requestFont(), чтобы получить шрифт. Этот метод проверит, находится ли шрифт в кеше. Если его там нет, то он обращается к провайдеру шрифтов, чтобы извлечь шрифт и передать в callback.
Как только FontRequestCallback получает объект Typeface, он устанавливает его в нужный виджет. Это наглядно можно увидеть на GIF ниже.
Заключение
Вот и всё! Теперь с помощью загружаемых шрифтов вы можете использовать огромный ассортимент самых разных шрифтов и при этом не увеличивать размер вашего APK файла.
Источник
Google Sans
Лицензия: Платный шрифт(Paid font)
Поддержка языков: Кирилица, латиница
- English
- Русский
- Français
- Deutsch
- Español
- Українська
- čeština
- Danish
- Greek
- Hindi
- polski
- Slovak
- Swedish
- AaBbCc
- ABC
- abc
- АаБбВв
- АБВ
- абв
- Numbers
Комментарии ( 9 )
Добавить комментрий
Категории шрифтов
Скачать
Помогите проекту
Пожалуйста поделись ссылкой с друзьями,
это очень поможет развитию этого проекта.
Я хочу помочь проекту!
Кинь денежку, или клацни баннер =)
Все права на шрифты, выложенные на сайте, принадлежат их правообладателям.
Мы не продаем шрифты и, в большинстве случаев, не знаем где их купить.
По всем вопросам приобретения и использования шрифтов в своих проектах — обращайтесь к их правообладателям.
Если вы заметите ошибку на сайте, очень вас просим сообщить на почту admin@webfonts.pro
Пожалуйста поделись ссылкой с друзьями, это очень поможет развитию этого проекта.
Предложить шрифт
Не смогли найти нужный шрифт? Предложите его нам!
Мы обязательно его добавим. Если найдем, конечно 🙂
Источник