...允许在您的项目中包含任何图标字体及其所有矢量图标。没有限制。无限制缩放、随时使用任何颜色、提供轮廓以及许多其他自定义...
包含哪些内容 • 设置 • 迁移指南? • 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
结尾的字体至少需要 v4.x 的 Android-Iconics v5.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
被禁用,则需要手动注册字体。请在注册字体中找到更多详细信息。
笔记
如果库中没有使用基于上下文的 API,则可能需要调用Iconics.init(applicationContext)
。
IconicsDrawable ( this , FontAwesome . Icon .faw_android). apply {
colorInt = Color . RED
sizeDp = 24
}
如果您通过 XML 使用 Iconics 库,请按以下语法提供要使用的图标: 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 " />
要在您的项目中包含实验性撰写支持,请将以下依赖项添加到您的项目中(自 v5.2.0 起)
implementation " com.mikepenz:iconics-compose: ${ latestAndroidIconicsRelease } "
使用提供的Image
包装器并设置图标。
Image (
GoogleMaterial . Icon .gmd_access_alarm,
colorFilter = ColorFilter .tint( MaterialTheme .colors.primary),
)
关联 | 前缀 | 依赖性 |
---|---|---|
谷歌材料设计图标 **原创者 | ||
谷歌** | gmd、转基因、gmr、gms | 实施 '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' |
丰泰品牌 | 很棒的 | 实现 'com.mikepenz:fontawesome-typeface:+@aar' |
Fontawesome常规 | 远的 | 实现 'com.mikepenz:fontawesome-typeface:+@aar' |
气象学 | 遇见 | 实现 'com.mikepenz:meteocons-typeface:+@aar' |
奥克蒂康斯 | 十月 | 实现 'com.mikepenz:octicons-typeface:+@aar' |
社区材料 | 指令 | 实施 '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' |
Pixden7中风 | PE7 | 实现 'com.mikepenz:pixeden-7-行程-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-字体生成器
ProGuard / R8 规则与每种字体内部捆绑。
ContextWrapper
迈克·彭茨
彼得·古尔科
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.