Из вашего вопроса видно, что вы хотите иметь шрифт, доступный для вашего приложения, который загружается программно при запуске приложения (а не в комплекте с приложением).
Вы также сказали, что знаете о новых загружаемых Шрифты, но это «применяется только к шрифтам Google». Это неправильно. пример приложения использует встроенный поставщик шрифтов Google Play Services. . Однако, согласно документации, вы также можете использовать свой собственный поставщик шрифтов, поддерживаемый вашим собственным онлайн-сервером, предоставляющим шрифты.
Я не пробовал это, но я представляю себе ваш пользовательский класс "FontsProvider
" (расширенный ContentProvider
) будет учитывать FontsContract
, введенный в API 26. Получив запрос FontRequest
, он найдет шрифт из его локальный кеш (или, альтернативно, на сервере, на котором вы работаете), затем верните Typeface
через FontsContract.FontRequestCallback
точно так же, как Google Play Services один делает. (Опять же, посмотрите на документы — у вас есть возможность требовать или не требовать сертификат.)
Пользовательский FontProvider
может быть включен в стороннее приложение (скажем, в компанию по производству шрифтов, которая предоставляет шрифты). Но я не понимаю, почему вы не можете добавить свой собственный FontProvider
в свое собственное приложение, чтобы он связывался с вашим сервером и самостоятельно обрабатывал все кэширование.
Между прочим, если вам интересно узнать об API, который служба Google Font использует для предоставления информации о шрифтах (включая ссылки на файлы), см. здесь. Отвечая на другой вопрос, связанный со шрифтами, я написал очень простой python программа, которая получает список всех шрифтов, затем анализирует и фильтрует его, что может быть немного полезно, если вы решите написать собственную серверную службу поставщика шрифтов.
person
fattire
schedule
31.01.2018