Android中使用iconfont方式显示图片的优劣

优点:

在安卓中使用Iconfont的unicode字体样式方法设置图片优点是显而易见的它可以让图片变得很小,一般而言一个安卓项目的图片文件大小在几M左右(当然经过压缩处理后图片也可以很小,但再小也是会超过1M的),但是使用unicode字体样式后能控制在1M以内(可能只有几百Kb)。

缺点:

1.放弃了安卓自带的图片适配机制,需要开发者自己去设置图片的大小,如果每一张图片都去设置大小这无疑增加了不少的工作量。

Android为了更好地优化应用在不同屏幕密度下的用户体验,在项目的res目录下可以创建drawab-[density](density为6种通用密度名)目录,开发者在进行APP开发时,针对不同的屏幕密度,将图片放置于对应的drawable-[density]目录,Android系统会依据特定的原则来查找各drawable目录下的图片。

Android中使用iconfont方式显示图片的优劣

Android中使用iconfont方式显示图片的优劣

2.相比于直接引用图片来说使用unicode方法(安卓上只提供这种方式,前端有三种方式)要多了两个步骤,每张图片都要多这两步。

Android中使用iconfont方式显示图片的优劣

3. 使用unicode字体样式设置图片时只能给图片设置一种颜色,因为只能通过设置字体颜色来达到设置图片颜色的目的,这样当图标当中有多种颜色的时候这种方法显然是不行的,例如下面的图标因为有蓝色和黄色两种颜色所以不能使用这种方法。

Android中使用iconfont方式显示图片的优劣

对于上面三个图标如果一定要使用unicode方法设置那么将会是这个样的:

Android中使用iconfont方式显示图片的优劣

4. unicode方式设置的图片无法在Android Studio中直接显示必须运行到手机上才能看清楚图片,那么在写界面的时候为了更直观的看到效果设置完图片后还得运行到手机上才能看见。

Android中使用iconfont方式显示图片的优劣

5.对于图片文字结合的控件,unicode方式无法达到要求。下图中的三个控件原本每个红框内的内容只需要一个控件就可达到显示效果,但是用了unicode方式后必须用两个控件才能完成。因为如果只用一个控件的话,图片显示是用setText方法,文字显示也是用setText方法,两者存在冲突。像这样的应用场景在安卓中是很普遍的,所以这样会使代码复杂化。

Android中使用iconfont方式显示图片的优劣

总结:

三方库,三方工具,如果是使开发便捷,就会损耗性能,如果提高性能,就会提高开发复杂度。