Android Icon-fonts:像文字一样操作图标

IconFonts

在Android手机上,每种字体实际上就是一套图片,每个图片由一个个点阵组成,并赋予一个对应的Unicode编码。同样的道理,我们可以把一些常用的图标也制作成字体格式,分配Unicode编码,并像使用文字一样的使用这些图标,这就是Icon fonts的用法,这种方法经常被用于前端开发中。

相比于使用Drawable对象,Icon fonts有如下优点:

  1. 不再需要制作存储不同分辨率的drawables,图形资源的大小降低一个数量级
  2. 可以方便的对icon-fonts进行缩放,改变颜色,改变大小(比如点击前和点击后),添加阴影和光晕等效果

使用效果如下,看起来就像操作一个图标,实际上是在操作一个文本,而且我们不需要存储不同尺寸和不同颜色的图标。

IconFont使用效果

Icon fonts用法也很简单,分四步:

  1. 将图标生成SVG文件,并将SVG文件转换成字体文件,格式为ttf,同时每个图标对应一个Unicode码,如下图。可以在这个网站进行转换,同时上面有一些做好的图标可以用:https://icomoon.io/app/#/select

    各种各样的Icon
    Icon对应的Unicode
  2. 将生成的ttf字体文件放到assets文件夹


    assets文件夹
  3. 在strings.xml中给每个icon-font命名,对应的value就是该Icon的Unicode


    String xml
  4. 使用Typeface.createFromAsset加载字体文件,通过setTypeface给TextView设置字体,然后就可以像文字一样给它设置颜色,大小等属性了

Typeface font = Typeface.createFromAsset(getAssets(), "icomoon.ttf");
cameraTV.setTypeface(font);
cameraTV.setText(R.string.ic_camera);
cameraTV.setTextSize(TypedValue.COMPLEX_UNIT_SP, 30);
cameraTV.setTextColor(getResources().getColor(R.color.yellow));

Done

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容