Android java свой шрифт

Assets (Активы)

В Android имеется ещё один каталог, в котором могут храниться файлы, предназначенные для включения в пакет — assets. Этот каталог находится на том же уровне, что и res. Для файлов, располагающихся в assets, в R.java не генерируются идентификаторы ресурсов. Для их считывания необходимо указать путь к файлу. Путь к файлу является относительным и начинается с /assets. Этот каталог, в отличие от подкаталога res, позволяет задавать произвольную глубину подкаталогов и произвольные имена файлов и подкаталогов.

По умолчанию проект в студии не содержит данную папку. Чтобы её создать, выберите меню File | New | Folder | Assets Folder.

Чтение файлов

Для доступа к файлам используется класс AssetManager. Пример для чтения текстового файла.

Сначала на Kotlin.

Для доступа к графическому файлу из актива можно использовать следующий код:

Вы также можете загрузить изображение в Bitmap, используя BitmapFactory.decodeStream(), вместо Drawable.

Функция-расширение для Kotlin, которая вернёт Bitmap.

Используем собственные шрифты

Напишем практический пример создания приложения, в котором будут использоваться собственные шрифты, не входящие в стандартную библиотеку шрифтов Android. Для этого мы упакуем нужные шрифты вместе с приложением. Поместим в каталог assets/fonts файлы шрифтов (можно скачать бесплатные шрифты с сайтов 1001 Free Fonts или Urban Fonts ).

В файл разметки добавим пару текстовых полей с заготовленным текстом для вывода этого текста с нашим шрифтом.

В классе активности загрузим объект EditText из ресурсов, а затем создадим объект Typeface, используя вызов статического метода Typeface.createFromAsset(). Метод createFromAsset() принимает два параметра:

  • объект AssetManager, который можно получить вызовом метода getAssets()
  • путь к файлу актива.

Например, загрузить шрифт для текстового поля EditText можно следующим способом:

Запустив проект, мы увидим в текстовых полях надписи Happy New Year! и Meow!, выводимые нашими собственными шрифтами.

Пример для фрагмента.

Загрузка локальных файлов из активов в WebView

Если нужно загрузить локальные страницы и изображения из активов в WebView, то можно использовать префикс file://android_asset. Подробнее смотрите в статье про WebView.

Получаем список файлов в папке assets

Можно получить список файлов, которые находятся в папке assets. Для быстрой проверки кода я вручную скопировал в папку два файла:

Кроме ваших файлов, также возвращаются странные папки /images, /sounds, /webkit. Учитывайте это в своих проектах. Так как в папке можно создавать собственные подпапки, то можно воспользоваться вспомогательным методом:

Ограничение на размер файлов

По сети гуляет информация, что существует ограничение в 1 Мб на размер файлов в папке assets. При превышении размера у вас может появиться ошибка:

Я не сталкивался, поэтому рецепт решения проблемы не предлагаю.

Источник

Android и кастомные шрифты или «Да здравствует API 26»

Как было раньше. Краткий обзор

Если было много view где требовались нестандартные шрифты, то мы использовали что-то вроде такого:

view.xml

CustomFontTextView.class

И это я пропустил огромный кусок который отвечает за то, чтобы не писать каждый раз путь к шрифту, а указывать

Ну, или шли на гитхаб и в результате находили Calligraphy (7000 звезд!)

Ни для кого не секрет что этот подход содержал много минусов как в огромном количестве boilerplate кода, так и в том, чтобы сделать это эффективно и где-нибудь не утечь по памяти запрашивая каждый раз Typeface.

Читайте также:  Если вирусы для android

Но все изменилось в API 26

Похоже, гугл наконец-то сдался и решил отказаться от навязывания Roboto и сделал удобное подключение сторонних шрифтов, за что ему огромное спасибо.

Линк для тех, кто любит читать в оригинале.

Теперь подключение состоит всего из нескольких несложных шагов:

1. Создаем папку font в res
Resource type выбираем font

2. Перетаскиваем в новую папку все нужные нам в проекте шрифты

3. Создаем файл для семейства шрифтов.

Обратите внимание: я сразу добавил в пример то как должен выглядеть файл, если вы хотите поддерживать и более старые версии Андроида. (Начиная с 14). Если вам повезло и у вас таргет только на супер-новые девайсы, то ваш файл сократится в 2 раза

Ну а дальше остается только наслаждаться сборкой

Использование в TextView

Используем в стилях

И у вас больше не болит голова об эффективности 🙂

Источник

Совет: Работаем со своими шрифтами в Android O

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 выдаст ошибку, как только вы попытаетесь сослаться на этот ресурс.

Читайте также:  Nights in the woods android

Так как у вас есть файл(ы) шрифтов, вам надо будет где-то их хранить:

  • Правый клик по папке app/res вашего проекта и выберите New > Android resource directory.
  • Откройте выпадающее меню и выберите font.
  • Введите font в File name.
  • Нажмите OK.

    Переместите файлы вашего шрифта в новую папку res/font.

    Использование своих шрифтов

    Вы можете применить свой шрифт к тексту, используя новый XML атрибут android:fontFamily :

    Вы можете добавить пользовательский шрифт к любым стилям, которые вы создали в приложении.

    Если вы хотите использовать свой шрифт программно, когда вы можете извлечь ваш шрифт используя метод getFont(int) , например:

    Создание семейства шрифта

    Иногда при распаковке папки со шрифтом вы можете обнаружить несколько версий одного и того же шрифта, например, курсивную версию, или шрифты с различной толщиной.

    Если вы используете несколько версий одного и того же шрифта, вы можете сгруппировать их вместе в семейство шрифтов. Семейство шрифтов по существу является отдельным XML-файлом, в котором вы определяете каждую версию шрифта со всеми связанными с ним атрибутами стиля и веса.

    Чтобы создать семейство шрифтов:

    • Убедитесь, что вы добавили все файлы шрифта в папку res/font вашего проекта.
    • Щелкните правой кнопкой мыши по папке res/font вашего проекта и выберите New > Font resource file.
    • Дайте этому файлу имя и нажмите OK.
    • Откройте этот XML-файл и определите все различные версии этого шрифта, а также их атрибуты стиля и веса, например:

    Затем вы можете ссылаться на любой из шрифтов в этом семействе, используя атрибут android:fontFamily . Например:

    Не забудьте протестировать!

    В то время, как легко увлечься новыми функциями, не заходите за рамки пользовательских шрифтов! Согласованные UI легче в навигации и понимании, а если ваше приложение постоянно переключается между шрифтами, тогда ваши пользователи скорее обратят больше внимание на то, как выглядит ваш текст, а не на то, что о чем он говорит.

    Если вы добавляете пользовательские шрифты в свой проект, важно проверить, как этот шрифт отображается в широком диапазоне различных конфигураций экрана, поскольку вашим главным приоритетом всегда должна быть удобочитаемость текста.

    Заключение

    В этом совете я показала вам, как создать более стильный и уникальный текст, добавив пользовательские шрифты в свои проекты. В заключительном посте этой серии мы переведём наш фокус с текста на изображения, так как я покажу вам, как создавать адаптивные значки запуска, которые автоматически адаптируют свою форму в соответствии с текущим устройством.

    В то же время ознакомьтесь с некоторыми из наших других руководств по разработке приложений для Android!

    Источник

    Как использовать пользовательский шрифт в Android Studio

    Я пытался использовать пользовательский шрифт в Android Studio, как в Eclipse. Но, к сожалению, не удалось выяснить, куда положить папку «активы»!

    Вот несколько шагов для его решения:

    1. Перейдите в папку (папку проекта)
    2. Затем app> src> main
    3. Создать папку «активы> шрифты» в основной папке.

    Поместите ваш ‘abc.ttf’ в папку шрифтов.

    Или попробуйте следующим образом:

    1. Выберите «Файл»> «Создать»> «Папка»> «Папка»

    2.click finish

    3. щелкните правой кнопкой мыши на активах и создайте папку с именем fonts

    4.put ваш файл шрифта в активах > шрифты

    5. затем используйте ниже код, чтобы изменить шрифт textView

    Привет, у нас есть лучший способ применить шрифты на EditTexts и TextViews на Android сразу и применить его в целом проекте.

    Прежде всего вам нужно создать папку шрифтов. Вот шаги.

    1: Переход к папке проекта. Затем приложение> src> main

    2: Создайте папки с именем «assets / fonts» в основной папке.

    3: Поместите шрифты в папку шрифтов. Здесь у меня есть «MavenPro-Regular.ttf»

    Ниже приведены шаги для применения пользовательских шрифтов в EditText, и с помощью этого подхода вы можете применять шрифты на каждом входе.

    1: Создать класс MyEditText (ваше предпочтительное имя …)

    2: расширение EditText

    3: Применить шрифт

    И вот вот код, как его использовать.

    Или в вашем файле xml

    Вы можете использовать простую и простую библиотеку сторонних разработчиков EasyFonts, чтобы задать множество настраиваемых шрифтов для вашего TextView . Используя эту библиотеку, вам не придется беспокоиться о загрузке и добавлении шрифтов в папку assets / fonts. Также о создании объекта Typeface. Вы также не сможете создавать папку с ресурсами.

    Существует много типов шрифтов, предоставляемых этой библиотекой.

    Вы можете использовать библиотеку каллиграфии, чтобы добавить пользовательский шрифт в Android.

    Прежде всего, вы будете использовать свои собственные шрифты для активов / .

    Примечание. Это приведет к ошибке в Android Studio, поэтому определите шрифт по умолчанию с помощью CalligraphyConfig в своем классе Application в методе onCreate () .

    1. Создайте папки в Project -> app (или ваше имя приложения) -> src -> main -> щелкните правой кнопкой мыши -> New -> Directory.
    2. Затем создайте новый каталог внутри активов под названием «шрифты».

    Чтобы назначить шрифт textView:

    Your_font_name включает расширение шрифта.

    Если вы очень новичок в Android, как я, это может быть немного сложно. Убедитесь, что вы звоните:

    Метод в рамках метода, такого как onCreate .

    С помощью шрифтов Support Library 26.0 (и Android O,) можно легко загрузить с ресурса

    Typeface typeface = ContextCompat.getFont (контекст контекста, int fontResourceId)

    Более подробную информацию можно найти здесь.

    Я хочу добавить свой ответ для Android-O и Android Studio 2.4

    Создайте папку под названием font под папкой res . Загрузите различные шрифты, которые вы хотели бы добавить в свой проект. Примеры шрифтов Google

    Внутри вашего семейства шрифтов xml

    3.Если вы хотите, чтобы он был программным способом, используйте следующий код

    Для получения дополнительной информации перейдите по ссылке к моему сообщению в блоге Стили шрифтов для Android с Android Studio 2.4

    Сначала создайте папку с файлами, затем создайте в ней папку fonts .

    Затем вы можете установить font из assets или directory как показано ниже:

    Согласно новой функции, доступной в Android O, ресурсы шрифтов в XML доступны в качестве новой функции.

    Чтобы добавить шрифты в качестве ресурсов, выполните следующие шаги в Android Studio:

    1) Щелкните правой кнопкой мыши папку res и выберите « Создать»> «Каталог ресурсов Android» . Откроется окно «Каталог новых ресурсов».

    2) В списке Тип ресурса выберите шрифт и нажмите кнопку ОК.

    Примечание. Имя каталога ресурсов должно быть шрифтом.

    3) Добавьте файлы шрифтов в папку шрифтов.

    Вы можете получить доступ к ресурсам шрифтов с помощью нового типа ресурса, шрифта. Например, чтобы получить доступ к ресурсу шрифта, используйте @ font / myfont или R.font.myfont.

    например. Typeface typeface = getResources().getFont(R.font.myfont); textView.setTypeface(typeface);

    Для новых читателей

    Вы можете использовать эту библиотеку Gloxey Custom Font Views

    Как использовать?

    Создание папок -> шрифты . Скопируйте шрифты в папку шрифтов .

    Используйте свойство app: font_name = «font_name_string», чтобы применить шрифт для просмотра.

    пример

    Поскольку вы знаете, как использовать пользовательские шрифты в проектах eclipse android, я предлагаю вам взглянуть на структуру каталогов проекта студии Android и найти местоположение для папки с ресурсами.

    Источник

    Читайте также:  Управление буфером обмена андроид
Оцените статью