和阿里聚划算团队的接触,了解了iconfont;(我们可以把app中图标替换成iconfont来实现)
为什么要使用iconfont代替ImageView来实现app中图标的显示?
1.图标集中处理,存放在.ttf文件中,避免重复资源。
2.减少app包的大小,每个icon只是一小段文本,文件的大小要比图片形式的icon小的多。
3.节省内存,iconfont与普通的文本一样使用矢量图的方式绘制,相比图片分配内存方式,消耗的内存可以忽略不计。
4.iconfont和文字的实现方式是一样的,所以可以使用不同分辨率和不同尺寸的屏幕(所显示的图标都很清晰)。
iconfont的使用起来很简单,下面简单介绍下:
把.ttf(存放图标所对应的字符序列)文件放入项目下的assets文件夹下,下面就是在工程中使用了:】
Typeface iconfont = Typeface.createFromAsset(getAssets(), "iconfont.ttf");
TextView textView = new TextView(this);
textView.setText("㘅 㖭 㖮 㖯");
或者textView.setText("\u3605");
textView.setTextColor();TextView.setTextSize();//设置图标的大小和颜色。
textView.setTypeface(iconfont);//OK这样我们的TextView就会显示你想要的图标了。显示图标就像显示字体一样简单。
为避免代码的重复使用,我们可以自定义一个TextView。
public class IconTextView extends TextView{
public IconTextView(Context context,AttributeSet attrs){
super(context,attrs);
Typeface iconfont = Typeface,createFromAssets(getAssets(),"iconfont.ttf");
setTypeface(iconface);
}
}