- Assets (Активы)
- Чтение файлов
- Используем собственные шрифты
- Загрузка локальных файлов из активов в WebView
- Получаем список файлов в папке assets
- Ограничение на размер файлов
- Downloadable Fonts In Android Studio
- Make your app more beautiful with downloadable font’s..
- Benefits:
- Using Downloadable Fonts via Android Studio:
- Downloadable Fonts | Android Developers
- Android 8.0 (API level 26) lets you download fonts instead of bundling them in your APK.
- Android и кастомные шрифты или «Да здравствует API 26»
- Как было раньше. Краткий обзор
- view.xml
- CustomFontTextView.class
- Но все изменилось в API 26
- Шрифты для Android
- Как использовать собственный шрифт в проекте, написанном в Android Studio
- 20 ответов
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. При превышении размера у вас может появиться ошибка:
Я не сталкивался, поэтому рецепт решения проблемы не предлагаю.
Источник
Downloadable Fonts In Android Studio
Make your app more beautiful with downloadable font’s..
Mar 30, 2018 · 2 min read
A ndroid introduced a downloadable fonts. Android Support Library 26 introduce support for APIs to request fonts from a provider application instead of bundling files into the APK or letting the APK download fonts. The feature is available on devices running Android API versions 14 and higher through the Support Library 26.
Benefits:
- Reduces the APK size
- Increases the app installation success rate
- Improves the overall system health as multiple APKs can share the same font through a provider. This saves users cellular data, phone memory, and disk space. In this model, the font is fetched over the network when needed.
Using Downloadable Fonts via Android Studio:
In the Layout Editor, select a TextView, and then under Properties, select fontFamily > More Fonts.
- The Resources window appears.
- In the Source drop-down list, select Google Fonts.
- In the Fonts box, select a font.
- Select Create downloadable font and click OK.
That’s it run your application and see the result 🙂
If you want to learn more about downloadable font’s then check it out the official documentation below:
Downloadable Fonts | Android Developers
Android 8.0 (API level 26) lets you download fonts instead of bundling them in your APK.
Thanks for reading this article. Be sure to clap to recommend this article if you found it helpful. It means a lot to me.
Источник
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
День добрый! В данной статье я хочу обсудить такой важный вопрос как шрифты в Android. Мы создадим свой TextView с возможностью добавлять шрифты в xml и визуально их отображать в превью. Так же решим одну важную проблему – использование шрифтов в списке, без глюков и напрягов для братьев наших меньших, наших Android-устройств.
Дальше я распишу как создать папку assets и добавлять свои шрифты, так что это можно пропустить.
Папка assets нужна для хранения самых разнообразных ресурсов в том числе и шрифтов. Создать ее можно либо вручную в корне main:
\app\src\main\assets
Либо более простым способом
Дальше файлы с форматом .ttf закидываем в assets либо в корень, либо создаем папку fonts, так как assets поддерживает вложенность.
Итак, теперь собственно обратимся к реализации использования шрифтов для TextView, в чистом виде выглядит приблизительно следующим образом:
Когда дело касается более чем пяти TextView, этот процесс начинает раздражать. Но раздражение — это не единственная проблема с которой встречается разработчик, использующий данную конструкцию. Дело в том, что сама обработка файла шрифта и превращение его в объект Typeface довольно трудоемкий процесс, следовательно, использование подобной конструкции в листе вызовет неимоверные глюки.
Данную задачу я предлагаю решить обычным сингтоном. И так создаем что-то похожее:
И устанавливаем шрифты используя синглтон, вот так:
Используя данную конструкцию мы решили вторую проблему, по поводу лагов в листе, но не первую, самую важную, вам все так же нужно находить все текстовые поля и на все снова и снова сетить шрифты, писать отдельные методы и терять нервные клетки. Еще одна проблема в том, что в привью — стандартный шрифт, следовательно ширину, высоту своего шрифта. вы можете увидеть только на живом девайсе или эмуляторе, это очень не удобно.
Введу выше указанных проблем мы сейчас напишем свой TextView с блэкджеком и шрифтами.
Первым делом создаем класс наследник обычного TextView с конструкторами:
Дальше создаём в папке values файл attrs.xml
и создаем файл с названием attrs.xml, после создания он должен выглядеть примерно следующим образом:
В нем создаем следующий блок кода:
Дальше возвращаемся в наш класс CustomFontsTextView и пишем вот такой метод:
Вот собственно и все. Теперь нужно перебилдить проект, чтобы у вас появились кастомные атрибуты. После этого отправляемся в xml файл нашей активити и пишем:
В привью мы увидим уже полностью готовые текстовые поля с нашими шрифтами.
Обращаться к нашим кастомным текстовым полям лучше как к обычному TextView, по стандартной форме:
Источник
Как использовать собственный шрифт в проекте, написанном в Android Studio
Я пытался использовать собственный шрифт в Android Studio, как мы это делали в Eclipse. Но, к сожалению, не мог понять, куда поместить папку «активы»!
20 ответов
Обновление 2021 года:
Создайте папку с именем font внутри папки res и скопируйте свой шрифт.
Все названия шрифтов должны быть только строчными буквами a – z, 0–9 или подчеркиванием.
Для программного использования:
Для Android Studio 4.2+ есть пункт меню:
Выберите File> New> Folder> Assets Folder.
Нажмите Готово .
Щелкните правой кнопкой мыши ресурсы и создайте папку с названием шрифты .
Поместите файл шрифта в ресурсы > шрифты
Используйте код ниже, чтобы изменить шрифт вашего textView
Есть много способов установить пользовательское семейство шрифтов в поле, и я использую их ниже.
Чтобы добавить шрифты в качестве ресурсов, выполните в Android Studio следующие шаги:
1) Щелкните правой кнопкой мыши папку res и выберите «Создать»> «Каталог ресурсов Android». Откроется окно «Новый каталог ресурсов».
2) В списке Тип ресурса выберите шрифт и нажмите ОК.
Примечание. Имя каталога ресурсов должно быть шрифтом.
3) Добавьте файлы шрифтов в папку шрифтов.
Добавьте шрифт в желаемом виде в ваш XML-файл:
Примечание: Но для этого вам потребовалось следующее:
Android Studio выше версии 3.0 canary.
Ваша активность расширяет AppCompatActivity.
Обновите свой файл Gradle следующим образом:
buildtoolsVersion больше 26 и минимум targetSdkVersion требуется 26
- Добавьте зависимости в файл build.gradle:
- gradle-wrapper.properties :
Я думаю, что вместо загрузки файла .ttf мы можем использовать шрифты Google. Реализовать очень просто. только вам нужно выполнить эти шаги. шаг 1) Откройте layout.xml вашего проекта и выберите семейство шрифтов текстового представления в атрибутах (для справки прилагается снимок экрана)
шаг 2) В семействе шрифтов выберите параметр «Другие шрифты . «, если вашего шрифта нет. Затем вы увидите, что откроется новое окно, в котором вы можете ввести требуемый шрифт и выбрать нужный шрифт из этого списка, например, Обычный, Полужирный, Курсив и т. д., как показано на изображении ниже.
шаг 3) . Затем вы увидите, что папка шрифтов будет автоматически сгенерирована в папке / res, содержащей выбранный вами xml-файл шрифтов.
Затем вы можете напрямую использовать это семейство шрифтов в xml как
Или программно вы можете добиться этого, используя
Здравствуйте, у нас есть лучший способ сразу применить шрифты к EditTexts и TextViews на Android и применить его ко всему проекту.
Первым делом вам нужно создать папку со шрифтами. Вот шаги.
1: перейдите в (папку проекта) Затем приложение> src> main
2: Создайте в основной папке папки с именем «активы / шрифты».
3: Поместите шрифты в папку шрифтов. Здесь у меня есть MavenPro-Regular.ttf
Вот шаги по применению пользовательских шрифтов в EditText, и, используя этот подход, вы можете применять шрифты для каждого ввода.
1: Создайте класс MyEditText (ваше предпочтительное имя . )
2: расширяет EditText
3. Примените свой шрифт
Вот пример кода;
И вот код, как его использовать.
Или в вашем XML-файле
С помощью библиотеки поддержки 26.0 (и Android O) шрифты можно легко загрузить с ресурса с помощью:
Дополнительную информацию можно найти здесь.
Я хочу добавить свой ответ для Android-O и Android Studio 2.4
Создайте папку под названием font в папке res . Загрузите различные шрифты, которые вы хотели добавить в свой проект. Пример Google fonts
Внутри вашего семейства пользовательских шрифтов xml
3.Если вы хотите, чтобы это было программно, используйте следующий код
Для получения дополнительной информации перейдите по ссылке на мое сообщение в блоге Font стили для Android с Android Studio 2.4
Согласно новой функции, доступной в Android O, ресурсы шрифтов в XML доступны как новая функция.
Чтобы добавить шрифты в качестве ресурсов, выполните в Android Studio следующие шаги:
1) Щелкните правой кнопкой мыши папку res и выберите Создать> Каталог ресурсов Android . Откроется окно «Новый каталог ресурсов».
2) В списке Тип ресурса выберите шрифт и нажмите OK.
Примечание. Название каталога ресурсов должно быть шрифтом.
3) Добавьте файлы шрифтов в папку шрифтов.
Вы можете получить доступ к ресурсам шрифтов с помощью нового типа ресурсов font. Например, чтобы получить доступ к ресурсу шрифта, используйте @ font / myfont или R.font.myfont.
Например. Гарнитура шрифта = getResources (). getFont (R.font.myfont); textView.setTypeface (гарнитура);
Вы можете использовать легкую и простую EasyFonts стороннюю библиотеку, чтобы установить различные пользовательские шрифты для вашего TextView . Используя эту библиотеку, вам не нужно беспокоиться о загрузке и добавлении шрифтов в папку assets / fonts. Также о создании объекта Typeface. Вы также будете свободны от создания папки с активами.
Эта библиотека предоставляет множество типов шрифтов.
Сначала добавьте файл font.ttf в папку шрифтов. Затем добавьте эту строку в метод onCreate
А вот и мой xml
- Создайте ресурсы папки в Project -> app (или имя вашего приложения) -> src -> main -> щелкните правой кнопкой мыши -> New -> Directory.
- Затем создайте новый каталог внутри ресурсов под названием «шрифты».
Чтобы назначить шрифт для textView:
Your_font_name включает расширение шрифта.
Если вы совсем новичок в Android, как и я, это может быть немного сложно. Обязательно звоните:
Метод внутри такого метода, как onCreate .
Android 8.0 (API 26) представил новые функции, связанные со шрифтами.
1) Шрифты можно использовать как ресурсы.
2) Загружаемые шрифты.
Если вы хотите использовать внешние шрифты в своем приложении для Android, вы можете либо включить файлы шрифтов в apk, либо настроить загружаемые шрифты.
Включение файлов шрифтов в APK : вы можете загружать файлы шрифтов, сохранять их в файле res / font, определять семейство шрифтов и использовать семейство шрифтов в стилях.
Для получения дополнительных сведений об использовании пользовательских шрифтов в качестве ресурсов см. http://www.zoftino.com/ android-using-custom-fonts
Настройка загружаемых шрифтов : определите шрифт, предоставив сведения о поставщике шрифтов, добавьте сертификат поставщика шрифтов и используйте шрифт в стилях.
Для получения дополнительных сведений о загружаемых шрифтах см. http://www.zoftino.com/downloading-fonts-android
Сначала создайте папку assets , затем создайте в ней папку fonts .
Затем вы можете установить font из assets или directory , как показано ниже:
Теперь существует так много способов применить шрифт, и один из самых простых способов — это: 1) Щелкните правой кнопкой мыши папку res и выберите «Создать»> «Каталог ресурсов Android».
2) В списке «Тип ресурса» выберите шрифт и нажмите «ОК».
3) Поместите файлы шрифтов в папку шрифтов.
Добавьте свои шрифты в папку с ресурсами в app / src / main / assets, создайте собственный текстовый просмотр следующим образом:
Добавьте FontCache: чтобы вам не приходилось снова и снова создавать шрифт, например:
P.S. С Android O можно напрямую добавлять шрифты.
Поместите шрифты в папку с ресурсами, затем примените fontfamily: » ваши шрифты
Мне не удалось загрузить шрифты, потому что я назвал свой файл шрифта Poppins-Medium.tff, переименование его в poppins_medium.tff у меня сработало. Остальные шаги остались прежними:
- Создайте каталог ресурсов шрифта в папке res
- Скопируйте и вставьте свой tff-файл в этот каталог
- Затем используйте TextView в XML с помощью атрибута fontFamily.
- Если описанные выше шаги не работают, вы можете создать FontFamily этого шрифта, используя этот ссылка
Чтобы использовать функцию «Шрифты в XML» на устройствах под управлением Android 4.1 (уровень API 16) и выше, используйте библиотеку поддержки 26. Дополнительные сведения об использовании библиотеки поддержки см. В разделе «Использование библиотеки поддержки».
Чтобы добавить шрифты в качестве ресурсов, выполните в Android Studio следующие шаги:
Щелкните правой кнопкой мыши папку res и выберите «Создать»> «Каталог ресурсов Android».
Откроется окно «Новый каталог ресурсов».
В списке Тип ресурса выберите шрифт и нажмите кнопку ОК.
Добавьте файлы шрифтов в папку шрифтов.
Создание семейства шрифтов Чтобы создать семейство шрифтов, выполните следующие действия в Android Studio:
Щелкните правой кнопкой мыши папку шрифтов и выберите «Создать»> «Файл ресурсов шрифта». Откроется окно «Новый файл ресурсов».
Введите имя файла и нажмите ОК. В редакторе откроется новый ресурс шрифта XML.
Включите в элемент каждый файл шрифта, стиль и весовой атрибут. Следующий XML-код иллюстрирует добавление атрибутов, связанных со шрифтом, в XML-ресурс шрифта: Если ваш minSdkVersion имеет уровень API 26 и выше
И если ваш minSdkVersion ниже уровня API 26
Тогда вы можете использовать его где угодно, как это
Для новых читателей
Как пользоваться?
Создайте папку активы -> шрифты . Скопируйте шрифты в папку fonts .
Используйте свойство app: font_name = «font_name_string» , чтобы применить шрифт к просмотру.
Источник