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

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

Нужно брать щрифт из пользовательской папки, например /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" />


Кто разбирается, можете помочь?)
  • Вопрос задан
  • 63 просмотра
Подписаться 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. Но даже это не избавляет вас от обязательств прооверять наличие файла перед его использованием.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы
Brief Москва
от 150 000 до 210 000 ₽
СМК-РК Москва
от 200 000 до 250 000 ₽
Idea Platform Москва
от 90 000 до 180 000 ₽