... permite incluir qualquer fonte de ícone com todos os seus ícones vetoriais em seu projeto. Sem limites. Dimensione sem limite , use qualquer cor a qualquer momento, forneça um contorno e muitas personalizações adicionais...
O que está incluído • Configuração • Guia de migração? • WIKI / FAQ • Fonte personalizada ?️ • Exemplo de aplicativo
Fontes já disponíveis
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 } "
Observação
Fontes que terminam com -kotlin
requerem pelo menos v4.x do Android-Iconics v5.1.x ou mais recente requer as versões de fonte mais recentes
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 '
Observação
Para usuários do catálogo de versões não é possível adicionar o tipo, porém é possível fazê-lo através da definição da implementação. implementation(libs.material.typeface) { artifact { type = "aar" } }
Aviso
As fontes usam a biblioteca jetpack startup
para se registrarem automaticamente. Se jetpack startup
estiver desabilitada, será necessário registrar manualmente as fontes. Encontre detalhes adicionais nas fontes Register.
Observação
Pode ser necessário chamar Iconics.init(applicationContext)
se nenhuma API baseada em contexto for usada na biblioteca.
IconicsDrawable ( this , FontAwesome . Icon .faw_android). apply {
colorInt = Color . RED
sizeDp = 24
}
Se você usar a biblioteca Iconics via XML, forneça o ícone que deseja usar na seguinte sintaxe: gmd-favorite
--> fontId
- iconName
. Uma lista das fontes disponíveis e seu fontId
pode ser encontrada aqui. Todos os nomes de ícones das fontes padrão podem ser encontrados através do aplicativo DEMO.
Use a sintaxe {
definidor de ícone }
Some great text with a {faw-android} font awesome icon and {met-wind} meteocons icons.
Especifique o drawable em sua pasta 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
Use como qualquer drawable normal em seu aplicativo. Este recurso foi sugerido e inicialmente fornecido por @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 " />
Para incluir o suporte de composição experimental em seu projeto, adicione a seguinte dependência ao seu projeto (desde v5.2.0)
implementation " com.mikepenz:iconics-compose: ${ latestAndroidIconicsRelease } "
Use o wrapper Image
fornecido e defina o ícone.
Image (
GoogleMaterial . Icon .gmd_access_alarm,
colorFilter = ColorFilter .tint( MaterialTheme .colors.primary),
)
Link | Prefixo | Dependência |
---|---|---|
Ícones do Google Material Design **ORIGINAL por | ||
Google** | gmd,gmo,gmr,gms | implementação 'com.mikepenz:google-material-typeface{-contornado, arredondado, nítido}:+@aar' |
Fonte icônica do Material Design **Material do Google | ||
Icônico** | gmi | implementação 'com.mikepenz:material-design-iconic-typeface:+@aar' |
Fonte incrível | ufa | implementação 'com.mikepenz:fontawesome-typeface:+@aar' |
FontawesomeMarca | fabuloso | implementação 'com.mikepenz:fontawesome-typeface:+@aar' |
FontawesomeRegular | distante | implementação 'com.mikepenz:fontawesome-typeface:+@aar' |
Meteocons | conheci | implementação 'com.mikepenz:meteocons-typeface:+@aar' |
Octicons | outubro | implementação 'com.mikepenz:octicons-typeface:+@aar' |
Material Comunitário | cmd | implementação 'com.mikepenz:community-material-typeface:+@aar' |
Ícones meteorológicos | wico | implementação 'com.mikepenz:weather-icons-typeface:+@aar' |
Ícones de tipo | tipo | implementação 'com.mikepenz:typeicons-typeface:+@aar' |
Entypo | ent | implementação 'com.mikepenz:entypo-typeface:+@aar' |
Devicon | desenvolvedor | implementação 'com.mikepenz:devicon-typeface:+@aar' |
Ícones de Fundação | quatro | implementação 'com.mikepenz:foundation-icons-typeface:+@aar' |
Iônicos | íon | implementação 'com.mikepenz:ionicons-typeface:+@aar' |
Pixden7Stroke | pe7 | implementação 'com.mikepenz:pixeden-7-stroke-typeface:+@aar' |
Design de materiais DX | cmf | implementação 'com.mikepenz:material-design-icons-dx-typeface:+@aar' |
Ícones de fósforo | Pho | implementação 'com.mikepenz:tipo de fósforo:+@aar' |
Ícones Simples | sim | implementação 'com.mikepenz:simple-icons-typeface:+@aar' |
As licenças para todas as fontes incluídas estão vinculadas dentro da classe ou podem ser encontradas nos repositórios correspondentes.
Appcompat v1.4.x introduz suporte a emoji habilitado por padrão em todas as visualizações AppCompat*
, o que impede que as visualizações IconicsView*
(módulo iconics-views) apliquem corretamente o estilo expansível. Para corrigir esse problema, o suporte a emojis deve ser desativado fazendo:
app:emojiCompatEnabled="false"
Mais informações sobre o suporte a emojis appcompat: https://developer.android.com/jetpack/androidx/releases/appcompat#1.4.0-alpha01
Se você deseja adicionar sua própria fonte personalizada ou uma GenericFont você deve registrar esta fonte (antes de usá-la). O melhor lugar para fazer isso é o Application
.
E inicialize o Iconics como desejar
class CustomApplication : Application () {
override fun onCreate () {
super .onCreate()
// register custom fonts like this (or also provide a font definition file)
Iconics .registerFont( CustomFont ())
}
}
Tudo é fácil e simples. Certo? Mas agora você tem um único ícone em sua visualização de texto e precisa de um estilo adicional? Basta definir o estilo de todos os ícones ou apenas de um específico. Você também pode encontrar isso no PlaygroundActivity do exemplo.
Iconics . Builder ()
.style( ForegroundColorSpan ( Color . WHITE ), BackgroundColorSpan ( Color . BLACK ), RelativeSizeSpan ( 2f ))
.styleFor( FontAwesome . Icon .faw_adjust, BackgroundColorSpan ( Color . RED ))
.on(tv1)
.build()
Às vezes você não vai gostar de usar a tecla de ícone ("faw-adjust") assim, mas use o enum fornecido por uma fonte específica. Ambos são válidos:
IconicsDrawable ( this , " faw-adjust " ).actionBar()
IconicsDrawable ( this , FontAwesome . Icon .faw_adjust). apply {
sizeDp = 24
paddingDp = 1
}
Isso é possível apenas com o arquivo de mapeamento *.ttf e *.css. E levará 2 minutos.
Você pode obter esses dois arquivos baixando uma fonte de ícone da web ou, se desejar criar sua própria fonte de ícone personalizada a partir de arquivos *.svg, você pode usar as seguintes ferramentas:
Depois de obter esses dois arquivos, vá para a ferramenta de criação de complementos de ícones android-iconics.mikepenz.com. Insira todas as informações. Adicione *.ttf e *.css e clique no botão. Ele irá gerar e baixar o complemento da fonte do ícone como zip. (esta ferramenta é apenas local, nenhum arquivo é enviado para um servidor, você pode usá-la com segurança com qualquer ícone)
Para gerar um campo de string para cada um dos ícones da sua fonte, você pode usar este gerador simples: Android-Iconics String Generator
Um plugin Gradle incrível que pode buscar automaticamente uma fonte do Fontastic e gerar o Módulo Android para o seu projeto. Gerador de fontes icônicas
As regras ProGuard/R8 são agrupadas internamente com cada fonte.
ContextWrapper
personalizado dentro do CalligraphyMike Penz
Pedro Gulko
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.