- Assets (Активы)
- Чтение файлов
- Используем собственные шрифты
- Загрузка локальных файлов из активов в WebView
- Получаем список файлов в папке assets
- Ограничение на размер файлов
- Android и кастомные шрифты или «Да здравствует API 26»
- Как было раньше. Краткий обзор
- view.xml
- CustomFontTextView.class
- Но все изменилось в API 26
- Совет: Работаем со своими шрифтами в Android O
- Добавление ваших шрифтов в проект
- Использование своих шрифтов
- Создание семейства шрифта
- Не забудьте протестировать!
- Заключение
- Как использовать пользовательский шрифт в Android Studio
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.
Но все изменилось в 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 выдаст ошибку, как только вы попытаетесь сослаться на этот ресурс.
Так как у вас есть файл(ы) шрифтов, вам надо будет где-то их хранить:
- Правый клик по папке app/res вашего проекта и выберите New > Android resource directory.
- Откройте выпадающее меню и выберите font.
- Введите font в File name.
- Нажмите OK.
- Убедитесь, что вы добавили все файлы шрифта в папку res/font вашего проекта.
- Щелкните правой кнопкой мыши по папке res/font вашего проекта и выберите New > Font resource file.
- Дайте этому файлу имя и нажмите OK.
- Откройте этот XML-файл и определите все различные версии этого шрифта, а также их атрибуты стиля и веса, например:
- Перейдите в папку (папку проекта)
- Затем app> src> main
- Создать папку «активы> шрифты» в основной папке.
- Создайте папки в Project -> app (или ваше имя приложения) -> src -> main -> щелкните правой кнопкой мыши -> New -> Directory.
- Затем создайте новый каталог внутри активов под названием «шрифты».
Переместите файлы вашего шрифта в новую папку res/font.
Использование своих шрифтов
Вы можете применить свой шрифт к тексту, используя новый XML атрибут android:fontFamily :
Вы можете добавить пользовательский шрифт к любым стилям, которые вы создали в приложении.
Если вы хотите использовать свой шрифт программно, когда вы можете извлечь ваш шрифт используя метод getFont(int) , например:
Создание семейства шрифта
Иногда при распаковке папки со шрифтом вы можете обнаружить несколько версий одного и того же шрифта, например, курсивную версию, или шрифты с различной толщиной.
Если вы используете несколько версий одного и того же шрифта, вы можете сгруппировать их вместе в семейство шрифтов. Семейство шрифтов по существу является отдельным XML-файлом, в котором вы определяете каждую версию шрифта со всеми связанными с ним атрибутами стиля и веса.
Чтобы создать семейство шрифтов:
Затем вы можете ссылаться на любой из шрифтов в этом семействе, используя атрибут android:fontFamily . Например:
Не забудьте протестировать!
В то время, как легко увлечься новыми функциями, не заходите за рамки пользовательских шрифтов! Согласованные UI легче в навигации и понимании, а если ваше приложение постоянно переключается между шрифтами, тогда ваши пользователи скорее обратят больше внимание на то, как выглядит ваш текст, а не на то, что о чем он говорит.
Если вы добавляете пользовательские шрифты в свой проект, важно проверить, как этот шрифт отображается в широком диапазоне различных конфигураций экрана, поскольку вашим главным приоритетом всегда должна быть удобочитаемость текста.
Заключение
В этом совете я показала вам, как создать более стильный и уникальный текст, добавив пользовательские шрифты в свои проекты. В заключительном посте этой серии мы переведём наш фокус с текста на изображения, так как я покажу вам, как создавать адаптивные значки запуска, которые автоматически адаптируют свою форму в соответствии с текущим устройством.
В то же время ознакомьтесь с некоторыми из наших других руководств по разработке приложений для Android!
Источник
Как использовать пользовательский шрифт в Android Studio
Я пытался использовать пользовательский шрифт в Android Studio, как в Eclipse. Но, к сожалению, не удалось выяснить, куда положить папку «активы»!
Вот несколько шагов для его решения:
Поместите ваш ‘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 () .
Чтобы назначить шрифт 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 и найти местоположение для папки с ресурсами.
Источник