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的创建者,这给了我这个项目的想法。一些核心概念和想法被重复使用,但一切都是从头开始写的。
- 克里斯托弗·詹金斯
ContextWrapperChristopher 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.
