Задать вопрос

Как применить шрифт из файлов пользователя?

Нужно брать щрифт из пользовательской папки, например /Fonts/font.ttf, а потом применить его для View. Пробую через Typeface.createFromFile и не получается.

Вот код:
binding.clock.typeface = Typeface.createFromFile(Environment.getExternalStorageDirectory().path + "/Fonts/AdventPro-Regular.ttf")


AndroidManifest.xml:
<uses-permission
        android:name="android.permission.READ_EXTERNAL_STORAGE"
        tools:ignore="ScopedStorage" />


Кто разбирается, можете помочь?)
  • Вопрос задан
  • 60 просмотров
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
402d
@402d
начинал с бейсика на УКНЦ в 1988
permission.READ_EXTERNAL_STORAGE - табу / красная тряпка для модерации
считается что приложения должны работать со своими файлами в песочнице -
своих папках КЕШ (можно удалить при нехватке места на телефоне) и ФАЙЛЫ (равнозначно новой установке)

Зашить файл в дистрибутив можно через Raw ресурсы или через Assets.
Можно включить(преднаселить) минимум, а остальное нужное скачивать по запросу.

Но применительно к шрифтам можно взять готовое решение для Google Fonts
https://developers.google.com/fonts/docs/android?hl=ru
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Shtucer
1. ```Environment.getExternalStorageDirectory().path``` вы уверены, что так правильно? Что-то я не вижу поля path в классе File. Рекомендуют всё-такие вот так: ```Environment.getExternalStorageDirectory().getAbsolutePath()```

2. Но даже это не избавляет вас от обязательств прооверять наличие файла перед его использованием.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы