转载请注明出处:http://blog.csdn.net/yyh352091626/article/details/53113677

作为一个Android开发者,自己想做一个app练手,有个比较头疼的问题就是没有UI图标资源~~ 其实很容易搞定的,下面就来聊聊如何在Android中应用图标字体库,找图标不再纠结!

图标库传送门:https://icomoon.io/app/#/select

1、点击左上角菜单 -> Manager Projects 进入管理页面。 

2、点击New Project, 创建一个工程,如First App并点击Load>

3、点击Add Icon From Libray,去选择自己喜欢的Library,点击+Add添加到工程里面。Library有收费的,也有免费的,视情况而定。

4、转到资源页面。选择自己想要下载的图标,怎么都是灰色的?安啦,后面有惊喜! 

5、点击右下角Generate Font,生成ttf字体库。 

上面四个图标就是我前面选中的,下面的诸如e911文字就是图标对应的unicode符号,中文字体也是这么一个道理。点击download下载字体库。

6、下载完成,解压。拷贝fonts/icomoon.ttf 到 android-assets/fonts 下面。

7、应用字体。首先建一个字体“映射”类,反正官方不太推荐用枚举方式,暂且就用注解吧~~ 打开刚才解压包里面的demo.html,对应来创建字体映射。

[java] view plaincopy
  1. import android.support.annotation.StringDef;
  2. /**
  3. * @author yuyh.
  4. * @date 2016/11/10.
  5. */
  6. @StringDef({
  7. MDFonts.HOME,
  8. MDFonts.NEWSPAPER,
  9. MDFonts.MUSIC,
  10. MDFonts.PLAY
  11. })
  12. public @interface MDFonts {
  13. String HOME = "\ue902";
  14. String NEWSPAPER = "\ue904";
  15. String MUSIC = "\ue911";
  16. String PLAY = "\ue912";
  17. }
[java] view plaincopy
  1. import android.content.Context;
  2. import android.graphics.Typeface;
  3. import android.widget.TextView;
  4. /**
  5. * @author yuyh.
  6. * @date 2016/11/10.
  7. */
  8. public class MDFontsUtils {
  9. public static Typeface OCTICONS;
  10. /**
  11. * Get octicons typeface
  12. *
  13. * @param context
  14. * @return octicons typeface
  15. */
  16. public static Typeface getOcticons(final Context context) {
  17. if (OCTICONS == null)
  18. OCTICONS = getTypeface(context, "fonts/icomoon.ttf");
  19. return OCTICONS;
  20. }
  21. /**
  22. * Set octicons typeface on given text view(s)
  23. *
  24. * @param textViews
  25. */
  26. public static void setOcticons(final TextView... textViews) {
  27. if (textViews == null || textViews.length == 0)
  28. return;
  29. Typeface typeface = getOcticons(textViews[0].getContext());
  30. for (TextView textView : textViews)
  31. textView.setTypeface(typeface);
  32. }
  33. /**
  34. * Get typeface with name
  35. *
  36. * @param context
  37. * @param name
  38. * @return typeface
  39. */
  40. public static Typeface getTypeface(final Context context, final String name) {
  41. return Typeface.createFromAsset(context.getAssets(), name);
  42. }
  43. }

9、图标对应是用TextView表示,而不是ImageView。如下:

[java] view plaincopy
  1. <TextView
  2. android:id="@+id/tvMusic"
  3. android:layout_width="wrap_content"
  4. android:layout_height="wrap_content"
  5. android:layout_margin="10dp"
  6. android:textSize="16dp" />
  7. <TextView
  8. android:id="@+id/tvHome"
  9. android:layout_width="wrap_content"
  10. android:layout_height="wrap_content"
  11. android:layout_margin="10dp"
  12. android:textSize="16dp" />

在Java中应用字体。如下:

[java] view plaincopy
  1. tvMusic = (TextView) findViewById(R.id.tvMusic);
  2. tvMusic.setText(MDFonts.MUSIC);
  3. tvHome = (TextView) findViewById(R.id.tvHome);
  4. tvHome.setText(MDFonts.HOME);
  5. // 应用字体
  6. MDFontsUtils.setOcticons(tvMusic, tvHome);

run起来,大功告成! 

10、你会发现,run起来图标颜色全是Android默认的灰色,那么怎么更改图标颜色呢?刚才说了,图标字体用的是TextView,实际上他跟中文英文字体没什么两样,他本质上还是文字。所以,TextView怎么设置字体大小、字体颜色,这里就对应怎么设置。如下:

[java] view plaincopy
  1. tvHome.setTextColor(Color.RED);
  2. tvHome.setTextSize(50);

哈哈,没毛病!

当然,也可以把字体符号配置在string.xml

[java] view plaincopy
  1. <string name="icon_home" translatable="false">\ue902</string>
[java] view plaincopy
  1. <TextView
  2. android:id="@+id/tvHome"
  3. android:layout_width="wrap_content"
  4. android:layout_height="wrap_content"
  5. android:layout_margin="10dp"
  6. android:textSize="16dp"
  7. android:text="@string/icon_home" />

// 当然,还需要下面这步来应用设置

[java] view plaincopy
  1. MDFontsUtils.setOcticons(tvHome);

更多用法大家就自行扩展吧!比如可以自定义一个TextView,直接应用字体,就不需要 MDFontsUtils.setOcticons(tvHome);  这步操作了,自己用就可以啦!

感谢阅读!

Android引用ttf图标字体库相关推荐

  1. 非常实用,Android引用ttf图标字体库

    转载请注明出处:http://blog.csdn.net/yyh352091626/article/details/53113677 作为一个Android开发者,自己想做一个app练手,有个比较头疼 ...

  2. Android 如何应用ttf图标字体库

    转载请注明出处:http://blog.csdn.net/yyh352091626/article/details/53113677 作为一个Android开发者,自己想做一个app练手,有个比较头疼 ...

  3. 阿里图标字体库的动态使用Android

    android里的图标之前一直都是使用图片,一个图标需要不同尺寸的几张图片,无形的会增大资源包,而阿里图标字体库是矢量的,使用的是字符,可以使安装包变得更轻量,于是决定使用阿里图标字体库 . 传送门: ...

  4. Qt之字体文件(TTF)图标字体库

    在看了别人源代码后发现里面有个非常好看的字体,查 了些资料现在记录下: 一套绝佳的图标字体库和CSS框架: http://fontawesome.dashgame.com/ 这套图形字体真的非常好看, ...

  5. 字体图标在服务器上显示不出来,fontawesome图标字体库组件在服务器上显示不出来图标的解决...

    这个组件在我所开发的网站中被大量使用,为网站增色不少.在本地测试的时候所有图标都能显示出来,可一到服务器上就显示不出来了.网上查列出了可能的原因.其一,IIS没有注册字体类型.经过检查,不存在这个问题 ...

  6. Font Awesome一套绝佳的图标字体库和CSS框架的使用

    场景 Font Awesome 一套绝佳的图标字体库和CSS框架 官网: http://fontawesome.dashgame.com/ 实现 从官网下载资源文件,解压后的目录 将上面解压后的四个目 ...

  7. html css导航栏字体图标,HTML+CSS入门之两种图标字体库

    本篇教程介绍了HTML+CSS入门之两种图标字体库,希望阅读本篇文章以后大家有所收获,帮助大家HTML+CSS入门. < ## 0. 前言 比较基础的图标加载:和块元素的背景background ...

  8. Qt中使用Font Awesome图标字体库

    一.简介 Font Awesome号称是为Bootstrap设计的完美图标字体,经常出现在各类网页中,非常流行. 官网: https://fontawesome.com/ 中文网: http://ww ...

  9. [Xamarin.forms] FontAwesome图标字体库用法

    FontAwesome图标字体库在Xamarin.forms用法 下载字体文件 使用步骤 下载字体文件 官网: http://www.fontawesome.com (现在免费版的更新到5.12.1版 ...

最新文章

  1. 为什么有的文件压缩的就很小,有的确实很大
  2. Meteor:发布与订阅
  3. Qtum量子链研究院:Plasma技术详解(下篇)
  4. SNMP协议简要教程
  5. 推荐算法炼丹笔记:CTR点击率预估系列入门手册
  6. Lua table(表)
  7. 为什么借钱要上央行征信?
  8. Ext grid 根据行号获取行数据
  9. 70%进入体制内!2021年,清北毕业生都去哪了?
  10. oracle占位符怎么打,PL/SQL Challenge 每日一题:2018-7-11 动态SQL中的占位符
  11. 企业级业务架构设计理论与方法
  12. web前端课程设计源码大全(HTML+CSS+JS)
  13. 计算本期,上期,同期,同期累计,去年全年的指标
  14. Android模拟器中实现音、视频文件的断点播放
  15. 基于FPGA的PWM加减速控制实现
  16. Python爬取招聘网站
  17. 安全-系统上线安全检查规范
  18. D3D11和D3D12共享资源
  19. 网络分层,图,易懂--对应 应用层、数据传输层、网络层、数据链路层
  20. UOJ224 NOI2016 旷野大计算 构造、造计算机

热门文章

  1. IDEA 的 show diagram 画出的类图线条乱了怎么办
  2. mc服务器控制台发消息,控制台作用介绍及控制台命令大全分享
  3. 同時acts_as_tree 和 ancestry gem
  4. svn切换分支提示没有共同的祖先
  5. 惠普android开发,惠普官方宣布不再采用Android:将开发PalmPad
  6. 《巴黎圣母院》的经典感情观
  7. [极客大挑战 2019]Http
  8. Python(Tuirtle库)简单动画--升旗
  9. mysql 存储过程 动态表名
  10. 进程间的几种通信方式的比较和线程间的几种通信方式