... позволяет включить в проект любой иконочный шрифт со всеми его векторными значками. Никаких ограничений. Безлимитное масштабирование , использование любого цвета в любое время, создание контура и множество дополнительных настроек...
Что включено • Установка • Руководство по миграции? • WIKI/Часто задаваемые вопросы • Пользовательский шрифт?️ • Пример приложения
Уже доступные шрифты
dependencies {
// the core iconics library (without any widgets)
implementation " com.mikepenz:iconics-core: ${ latestAndroidIconicsRelease } "
implementation " androidx.appcompat:appcompat: ${ versions.appCompat } "
}
// this adds all ui view widgets (IconicsButton, IconicsImageView, ...)
implementation " com.mikepenz:iconics-views: ${ latestAndroidIconicsRelease } "
Примечание
Для шрифтов, заканчивающихся на -kotlin
требуется версия Android-Iconics не ниже 4.x. Для версии 5.1.x или новее требуются последние версии шрифтов.
implementation ' com.mikepenz:google-material-typeface:4.0.0.3-kotlin@aar '
implementation ' com.mikepenz:google-material-typeface-{outlined|rounded|sharp}:4.0.0.2-kotlin@aar '
implementation ' com.mikepenz:material-design-iconic-typeface:2.2.0.9-kotlin@aar '
implementation ' com.mikepenz:fontawesome-typeface:5.9.0.3-kotlin@aar '
implementation ' com.mikepenz:octicons-typeface:11.1.0.1-kotlin@aar '
implementation ' com.mikepenz:meteocons-typeface:1.1.0.8-kotlin@aar '
implementation ' com.mikepenz:community-material-typeface:7.0.96.1-kotlin@aar ' // note 5.3.45.1 and newer alphabetically sorts, and merges in 3 sections
implementation ' com.mikepenz:weather-icons-typeface:2.0.10.8-kotlin@aar '
implementation ' com.mikepenz:typeicons-typeface:2.0.7.8-kotlin@aar '
implementation ' com.mikepenz:entypo-typeface:1.0.0.8-kotlin@aar '
implementation ' com.mikepenz:devicon-typeface:2.0.0.8-kotlin@aar '
implementation ' com.mikepenz:foundation-icons-typeface:3.0.0.8-kotlin@aar '
implementation ' com.mikepenz:ionicons-typeface:2.0.1.8-kotlin@aar '
implementation ' com.mikepenz:pixeden-7-stroke-typeface:1.2.0.6-kotlin@aar '
implementation ' com.mikepenz:material-design-icons-dx-typeface:5.0.1.3-kotlin@aar '
implementation ' com.mikepenz:phosphor-typeface:1.0.0.1-kotlin@aar '
implementation ' com.mikepenz:simple-icons-typeface:17.0.0.3@aar '
Примечание
Для пользователей каталога версий добавить тип невозможно, однако это можно сделать с помощью определения реализации. implementation(libs.material.typeface) { artifact { type = "aar" } }
Предупреждение
Шрифты используют библиотеку jetpack startup
для автоматической регистрации. Если jetpack startup
отключен, необходимо вручную зарегистрировать шрифты. Дополнительную информацию можно найти в разделе «Регистрация шрифтов».
Примечание
Может потребоваться вызвать Iconics.init(applicationContext)
если в противном случае из библиотеки не используются контекстные API.
IconicsDrawable ( this , FontAwesome . Icon .faw_android). apply {
colorInt = Color . RED
sizeDp = 24
}
Если вы используете библиотеку Iconics через XML, укажите значок, который вы хотите использовать, в следующем синтаксисе: gmd-favorite
--> fontId
- iconName
. Список доступных шрифтов и их fontId
можно найти здесь. Все имена значков из шрифтов по умолчанию можно найти через приложение DEMO.
Используйте синтаксис {
icon-definer }
Some great text with a {faw-android} font awesome icon and {met-wind} meteocons icons.
Укажите рисунок в папке drawable
.
< com .mikepenz.iconics.IconicsDrawable
xmlns : app = " http://schemas.android.com/apk/res-auto "
app : ico_icon = " gmd_favorite "
app : ico_color = " #0000FF "
app : ico_contour_width = " 1dp "
app : ico_contour_color = " #00FFFF "
app : ico_size = " 24dp " />
// all custom theming attributes supported
Используйте как любой обычный объект в вашем приложении. Эта функция была предложена и первоначально предоставлена @dzamlo.
< com .mikepenz.iconics.view.IconicsImageView
android : layout_width = " 72dp "
android : layout_height = " 72dp "
app : iiv_color = " @android:color/holo_red_dark "
app : iiv_icon = " gmd-favorite " /> // or @string/gmd_favorite with our generator
//app:iiv_size="12dp"
//app:iiv_padding="2dp"
//app:iiv_contour_color="#FF0000"
//app:iiv_contour_width="2dp"
//app:iiv_background_color="#FFFF00"
//app:iiv_corner_radius="2dp"
//app:iiv_background_contour_color="#FF0000"
//app:iiv_background_contour_width="1dp"
//app:iiv_shadow_radius="4dp"
//app:iiv_shadow_dx="1dp"
//app:iiv_shadow_dy="1dp"
//app:iiv_animations="spin|blink_alpha|blink_scale"
< com .mikepenz.iconics.view.IconicsTextView
android : text = " abc{hif-test}defgh{faw-adjust}ijk{fon-test1}lmnopqrstuv{fon-test2}wxyz "
android : textColor = " @android:color/black "
android : layout_width = " wrap_content "
android : layout_height = " 56dp "
android : textSize = " 16sp " />
< com .mikepenz.iconics.view.IconicsButton
android : text = " {faw-adjust} Button "
android : layout_width = " 120dp "
android : layout_height = " 60dp " />
Чтобы включить экспериментальную поддержку компоновки в ваш проект, добавьте в свой проект следующую зависимость (начиная с версии 5.2.0):
implementation " com.mikepenz:iconics-compose: ${ latestAndroidIconicsRelease } "
Используйте предоставленную оболочку Image
и установите значок.
Image (
GoogleMaterial . Icon .gmd_access_alarm,
colorFilter = ColorFilter .tint( MaterialTheme .colors.primary),
)
Связь | Префикс | Зависимость |
---|---|---|
Иконки Google Material Design **ОРИГИНАЛ от | ||
Google** | ГМД, ГМО, ГМР, ГМС | реализация 'com.mikepenz:google-material-typeface{-outlined,rounded,sharp}:+@aar' |
Знаменитый шрифт Material Design **Google Material | ||
Легендарный** | гми | реализация 'com.mikepenz:material-design-iconic-typeface:+@aar' |
потрясающий | фау | реализация 'com.mikepenz:fontawesome-typeface:+@aar' |
FontawesomeБренд | потрясающий | реализация 'com.mikepenz:fontawesome-typeface:+@aar' |
FontawesomeОбычный | далеко | реализация 'com.mikepenz:fontawesome-typeface:+@aar' |
Метеоконы | встретился | реализация 'com.mikepenz:meteocons-typeface:+@aar' |
Октиконы | октябрь | реализация 'com.mikepenz:octicons-typeface:+@aar' |
Материалы сообщества | cmd | реализация 'com.mikepenz:community-material-typeface:+@aar' |
Иконки погоды | вик | реализация 'com.mikepenz:weather-icons-typeface:+@aar' |
Типиконки | набрать | реализация 'com.mikepenz:typeicons-typeface:+@aar' |
Энтипо | ент | реализация 'com.mikepenz:entypo-typeface:+@aar' |
Девикон | разработчик | реализация 'com.mikepenz:devicon-typeface:+@aar' |
Иконки Фонда | фу | реализация 'com.mikepenz:foundation-icons-typeface:+@aar' |
Иониконы | ион | реализация 'com.mikepenz:ionicons-typeface:+@aar' |
Пиксден7Инсульт | пе7 | реализация 'com.mikepenz:pixeden-7-stroke-typeface:+@aar' |
Материальный дизайн DX | смф | реализация 'com.mikepenz:material-design-icons-dx-typeface:+@aar' |
Фосфорные иконы | фо | реализация 'com.mikepenz:фосфор-шрифт:+@aar' |
Простые иконки | сим | реализация 'com.mikepenz:simple-icons-typeface:+@aar' |
Лицензии на все включенные шрифты связаны внутри класса или их можно найти в соответствующих репозиториях.
Appcompat v1.4.x включает поддержку эмодзи по умолчанию во всех представлениях AppCompat*
, что не позволяет представлениям IconicsView*
(модулюiconics-views) правильно применять расширяемый стиль. Чтобы решить эту проблему, необходимо отключить поддержку смайлов, выполнив следующие действия:
app:emojiCompatEnabled="false"
Дополнительную информацию о поддержке смайлов appcompat: https://developer.android.com/jetpack/androidx/releases/appcompat#1.4.0-alpha01.
Если вы хотите добавить свой собственный шрифт или GenericFont, вам необходимо зарегистрировать этот шрифт (перед его использованием). Лучшее место для этого — Application
.
И инициализируйте Iconics по своему желанию.
class CustomApplication : Application () {
override fun onCreate () {
super .onCreate()
// register custom fonts like this (or also provide a font definition file)
Iconics .registerFont( CustomFont ())
}
}
Все легко и просто. Верно? Но теперь у вас есть один значок в текстовом представлении, и вам нужен дополнительный стиль? Просто определите стиль для всех значков или только для определенного. Вы также можете найти это в PlaygroundActivity примера.
Iconics . Builder ()
.style( ForegroundColorSpan ( Color . WHITE ), BackgroundColorSpan ( Color . BLACK ), RelativeSizeSpan ( 2f ))
.styleFor( FontAwesome . Icon .faw_adjust, BackgroundColorSpan ( Color . RED ))
.on(tv1)
.build()
Иногда вам не захочется использовать значок-клавишу («faw-adjust») таким образом, а используйте перечисление, предоставленное определенным шрифтом. Оба действительны:
IconicsDrawable ( this , " faw-adjust " ).actionBar()
IconicsDrawable ( this , FontAwesome . Icon .faw_adjust). apply {
sizeDp = 24
paddingDp = 1
}
Это возможно только с файлом сопоставления *.ttf и *.css. И займёт у вас 2 минуты.
Вы можете получить эти два файла, загрузив веб-шрифт значков, или, если вы хотите создать свой собственный шрифт значков из файлов *.svg, вы можете использовать следующие инструменты:
После того, как вы получили эти два файла, перейдите к инструменту создания дополнений к значкам android-iconics.mikepenz.com. Введите всю информацию. Добавьте *.ttf и *.css и нажмите кнопку. Он сгенерирует и загрузит надстройку шрифта значка в виде zip-файла. (этот инструмент является только локальным, файлы не отправляются на сервер, вы можете безопасно использовать его с любыми значками)
Для создания строкового поля для каждой иконки вашего шрифта вы можете использовать этот простой генератор: Android-Iconics String Generator.
Потрясающий плагин Gradle, который может автоматически получать шрифт из Fontastic и генерировать модуль Android для вашего проекта. Iconics-Font-Generator
Правила ProGuard/R8 встроены в каждый шрифт.
ContextWrapper
внутри Calligraphy.Майк Пенз
Петр Гулько
Copyright 2021 Mike Penz
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.