在项目开发中我们会发现一个问题,我们需要UI给我们切很多图标,而且大部分时候为了适配不同的手机屏幕,需要切很多套图,然后我们很繁琐的给图标命名,然之后放入不同的res文件夹,要做很多得无用功,而现在阿里巴巴给我们提供了矢量图标库,给我节省了大量的麻烦而又无用的工作,我们不再需要往res下的资源文件夹放各种图标,简单来说就是通过阿里巴巴将矢量图标库将各个图标转换为自定义字体(Typeface),而每一个图标对应的字体分别有一个对应的code,我们只需要将这个code设置给TextView的Text就OK了,简单又实用。
阿里巴巴矢量图标库: http://iconfont.cn/
当UI将图标上传到库里面后,我们只需要将其下载下来,在assets文件夹中新建一个iconfont将其导入,然后获取Typeface 设置给Text,简单又实用
代码演示如下:
package com.example.iconfontdemo; import android.app.Activity; import android.graphics.Typeface; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.widget.TextView; public class MainActivity extends Activity { private Typeface iconfont; private TextView tv_demo; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tv_demo = (TextView) findViewById(R.id.tv_demo); iconfont = Typeface.createFromAsset(getAssets(),"iconfont/iconfont.ttf"); tv_demo.setTypeface(iconfont); tv_demo.setText("\ue66f"); } }
效果如下:怎么样,是不是很easy?
但是设置这个图标字体有一个不太好的就是图标没有其他颜色,我们通常通过设置BackGroundColor和TextColor去设置我们需要的图标颜色,但是当UI给的图标带有其几种颜色貌似就不太好使了,这时我们还是老老实实的用图片格式的图标吧