自定义矢量图
首先 添加依赖:
//字体图标 //因为这个库的版本 和当前 项目的版本不兼容,所以加入 //exclude group:表示只要包含com.android.support的都排除 api ('com.joanzapata.iconify:android-iconify-ionicons:2.2.2'){ exclude group:'com.android.support' } api ('com.joanzapata.iconify:android-iconify-fontawesome:2.2.2'){ exclude group:'com.android.support' }
1,在 网上 下载 .ttf 文件,然后新建一个assets 文件夹,将 .ttf 文件放进去。
网址为 :
http://code.zoomla.cn/boot/font.html
然后选择添加到购物车,然后打开购物车,在右上角,
点击下载代码,完成后解压
将第一个打开,第二个.ttf文件进行保存,如下图
网页文件打开如下图
记住这个号,下面将会使用
2,创建枚举类,继承自 Icon,实现方法,
public enum EcIcons implements Icon { //这个号 就是网页里对应的东西,前面的icon_scan 可以随便起,但是注意必须加 _ icon_scan('\ue694'), private char character; EcIcons(char character) { this.character = character; } //图标的键,例如'fa-ok' @Override public String key() { return name().replace('_', '-'); } //与字体中的键匹配的字符 @Override public char character() { return character; } }
构造器要传入的值 在下载的文件中 有个.xml 的文件,打开后 找对应的就行
3,创建类 继承自 IconFontDescriptor ,然后加载文件,和 刚才定义的枚举对象。
public class FontEcModule implements IconFontDescriptor { @Override public String ttfFileName() { return "iconfont.ttf"; } @Override public Icon[] characters() { return EcIcons.values(); } }
4,定义一个类,继承自Application ,然后对字体进行初始化,注意一定要在清单文件中 设置name 的属性 等于 继承自 Application的类。
public class ExampleApp extends Application { @Override public void onCreate() { super.onCreate(); /* Latte.init(this) .WithApiHost("127.0.0.1") .withIcon(new FontAwesomeModule()) .withIcon(new FontEcModule()) .configure();*/ Iconify.IconifyInitializer initializer = Iconify.with(new FontEcModule()); } }
上面注释的 地方是我分装的,没有注释的则是 正常使用的。
还有就是设置清单文件
上面在 application中进行了初始化,然后进行使用就好了。
5,使用如下,布局中使用IconTextView ,text属性对应的值就是 EcIons 枚举类中对应的值,注意中间的下划线必须改为 -,也就是减号。
android:id="@+id/icon_test" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="{fa-coffee}" tools:ignore="HardcodedText" />
直接使用自带的,不需要自定义这个麻烦,如下所示
Iconify.IconifyInitializer initializer = Iconify.with(new FontAwesomeModule());
在上面进行初始化,创建一个类继承自application ,进行初始化,和上面的一样。
可以点进去看一下:
这个已经是别人写好的,直接用就可以了,点击第二个方法里面 返回的类,就是对应的矢量图,复制前面的字段,使用的使用将下划线改为中划线就ok,
如下所示:
这些都可以在上面第二个网址里面找到。