Android Iconics

字体下载 2025-08-14

Android-Iconics

...允许在您的项目中包含任何具有其所有向量图标的图标字体。没有限制。毫无局限的比例,随时使用任何颜色,提供轮廓和许多其他自定义...


包括的内容•设置•迁移指南?•Wiki / FAQ•自定义字体?️•示例应用程序


包括什么

  • 没有自定义限制(尺寸,颜色,轮廓,背景,填充,定位,...)
  • 阴影支持
  • 用作XML绘制的启动API 24
  • 一个图标来源(不再有MDPI,HDPI,...)
  • 灵活性
    • 尺寸
    • 颜色
    • 轮廓
    • 阴影
    • RTL的自动镜像(选择加入)
  • 如果需要绘制,它也将与IconicsDrawable一起使用!
  • 节省APK尺寸
  • 组成支持

已经可用的字体

  • Google材料设计图标
  • 材料设计标志性字体
  • fontawesome
  • meteocon
  • 八孔
  • 社区材料
  • 天气图标
  • 类型
  • Entypo
  • 德文
  • 基础图标
  • 离子
  • 材料设计DX
  • Pixeden 7中风
  • 简单图标
  • 或使用所需的任何图标创建自己的字体。

设置

最新版本?

  • Kotlin | v5.4.0
  • 预释放| v5.5.0-b01

1。提供Gradle依赖

 dependencies {
    // the core iconics library (without any widgets)
    implementation " com.mikepenz:iconics-core: ${ latestAndroidIconicsRelease } "
    implementation " androidx.appcompat:appcompat: ${ versions.appCompat } "
}

1B。 (可选)添加视图的依赖性

 // this adds all ui view widgets (IconicsButton, IconicsImageView, ...)
implementation " com.mikepenz:iconics-views: ${ latestAndroidIconicsRelease } " 

2。选择您所需的字体

笔记

-kotlin结尾的字体至少需要Android -Iconics v5.1.x或更新的v4.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 ,则需要手动注册字体。请在寄存器字体中找到其他详细信息。

用法

笔记

如果没有从库中使用基于上下文的API,则可能需要调用Iconics.init(applicationContext)

用作绘制

 IconicsDrawable ( this , FontAwesome . Icon .faw_android). apply {
    colorInt = Color . RED
    sizeDp = 24
}

通过XML使用

如果您通过XML使用ICONICS库,则提供您要在以下语法中使用的图标: gmd-favorite > fontId iconName 。可以在此处找到可用字体及其fontId的列表。默认字体中的所有图标名称均可通过演示应用程序找到。

文本中的符号

使用{ Icon-Definer }语法

 Some great text with a {faw-android} font awesome icon and {met-wind} meteocons icons.

可绘制的XML(API 24+)

drawable文件夹中指定可绘制的内容。

< com .mikepenz.iconics.IconicsDrawable
    xmlns : app = " http://schemas.an*dr**oid.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提出并最初提供

自定义视图

作为IconicsImageView

< 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"

作为IconicStextView

< 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 " />

作为IconicsButton

< com .mikepenz.iconics.view.IconicsButton
    android : text = " {faw-adjust} Button "
    android : layout_width = " 120dp "
    android : layout_height = " 60dp " />

撰写

为了在项目中包括实验性组成的支持,将以下依赖性添加到您的项目中(自v5.2.0)

implementation " com.mikepenz:iconics-compose: ${ latestAndroidIconicsRelease } "

使用提供的Image包装器并设置图标。

 Image (
    GoogleMaterial . Icon .gmd_access_alarm,
    colorFilter = ColorFilter .tint( MaterialTheme .colors.primary),
)

屏幕截图

可用字体

关联 前缀 依赖性
Google材料设计图标**原始
谷歌** GMD,GMO,GMR,GMS 实现'com.mikepenz:Google-Material-typeface {-outlined,flound,Sharp}:+@aar'
材料设计标志性字体** Google材料
标志性** GMI 实现'com.mikepenz:材料 - 启示 - 偶像式式:+@aar'
fontawesome faw 实现'com.mikepenz:fontawesome-typeface:+@aar'
fontawesomebrand 工厂 实现'com.mikepenz:fontawesome-typeface:+@aar'
fontawesomerepular 远的 实现'com.mikepenz:fontawesome-typeface:+@aar'
meteocon 见面 实现'com.mikepenz:meteocons-typeface:+@aar'
八孔 十月 实现'com.mikepenz:octicons-typeface:+@aar'
社区材料 CMD 实施'com.mikepenz:社区 - 材料型面:+@aar'
天气图标 WIC 实施'com.mikepenz:weather-icons-typeface:+@aar'
类型 typ 实现'com.mikepenz:typeicons-typeface:+@aar'
Entypo 恩特 实现'com.mikepenz:entypo-typeface:+@aar'
德文 开发 实现'com.mikepenz:devicon-typeface:+@aar'
基础图标 实现'com.mikepenz:Foundation-icons-typeface:+@aar'
离子 离子 实现'com.mikepenz:ionicons-typeface:+@aar'
Pixden7Stroke PE7 实现'com.mikepenz:Pixeden-7-STROKE-Typeface:+@aar'
材料设计DX CMF 实现'com.mikepenz:材料design-icons-dx-typeface:+@aar'
磷图标 pho 实现'com.mikepenz:磷光型:+@aar'
简单图标 SIM 实现'com.mikepenz:simple-icons-typeface:+@aar'

所有包含字体的许可证都链接在班级内部,或者可以在coresporting存储库中找到。

兼容性注释

AppCompat:1.4.x

AppCompat v1.4.x将默认启用的表情符号支持引入所有AppCompat*视图,该视图阻止了IconicsView* views(Iconics-Views模块)正确应用跨度样式。要解决此问题,必须通过执行以下操作表情符号支持:

app:emojiCompatEnabled="false"

有关AppCompat表情符号支持的更多信息:https://developer.android.com/jetpack/androidx/releases/appcompat#1.4.0-alpha01

高级用法

注册字体

如果要添加自己的自定义字体或通用字体,则必须注册此字体(在使用它之前)。最好的地方是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 ())
    }
}

高级IconicsBuilder

一切都很简单。正确的?但是现在您在文本视图中获得了一个图标,并且需要其他样式?只需定义所有图标或仅特定图标的样式即可。您也可以在样本的游乐场活动中找到这一点。

 Iconics . Builder ()
    .style( ForegroundColorSpan ( Color . WHITE ), BackgroundColorSpan ( Color . BLACK ), RelativeSizeSpan ( 2f ))
    .styleFor( FontAwesome . Icon .faw_adjust, BackgroundColorSpan ( Color . RED ))
    .on(tv1)
    .build()

字符串图标键或字体枚举

有时,您不喜欢使用像这样的图标键(“ faw-unjust”),而是使用特定字体提供的枚举。两者都是有效的:

 IconicsDrawable ( this , " faw-adjust " ).actionBar()
 IconicsDrawable ( this , FontAwesome . Icon .faw_adjust). apply {
    sizeDp = 24
    paddingDp = 1
}

创建自定义字体

仅使用 *.ttf和 *.css映射文件,这是可能的。并将带您2分钟。

您可以通过下载Web图标字体获取这两个文件,或者如果要从 *.svg文件创建自己的自定义图标字体,则可以使用以下工具:

  • fontello
  • Icomoon
  • 传说
  • 如果您找到其他工具,请让我知道。

收到这两个文件后,请转到图标插件创建工具Android-iconics.mikepenz.com。输入所有信息。添加 *.ttf和 *.css,然后单击按钮。它将生成并下载图标字体插件作为zip。 (此工具仅是本地的,没有将文件发送到服务器,您可以与任何图标安全地使用它)

图标的字符串字段

对于为字体的每个图标生成字符串字段,您可以使用此简单的生成器:Android-Iconics String Generator

Android模块发生器

一个很棒的Gradle插件,可以自动从字体获取字体,并为您的项目生成Android模块。 Iconics-Font Generator

proguard / r8

proguard / r8规则与每种字体内部捆绑在一起。

特别贡献者

  • Baptiste Lagache感谢Gradle字体模块生成器
  • 还要感谢所有其他贡献者。

学分

  • 琼·扎帕塔(Joan Zapata)是Android-Iconify的创建者,这给了我这个项目的想法。一些核心概念和想法被重复使用,但一切都是从头开始写的。
  • 克里斯托弗·詹金斯ContextWrapper Christopher Jenkins
  • 斯蒂芬·舒伯(Stephan Schober)

开发

  • 迈克·彭兹(Mike Penz)

    • mikepenz.dev -blog.mikepenz.dev -mikepenz@gmail.com
    • paypal.me/mikepenz
    • 自动变更生成动作
  • 彼得·古尔科

    • github.com/ztrap

执照

 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.*a*p*ache.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.
下载源码

通过命令行克隆项目:

git clone https://github.com/mikepenz/Android-Iconics.git