android中字体图标的正确使用

iconfont对于客户端应用来说有很多便捷:

1、自由变化大小
2、自由修改颜色
3、可以添加一些视觉效果如:阴影、旋转、透明度。
4、比单位的图片更节省资源

正常的添加方案

第一步:复制字体文件到项目 assets 目录;


android中字体图标的正确使用_第1张图片

第二步:打开 iconfont 目录中的 demo.html,找到图标相对应的 HTML 实体字符码;

第三步:打开 res/values/strings.xml,添加 string 值;

  手机

第四步:打开 activity_main.xml,添加 string 值到 TextView:


第五步:为 TextView 指定文字:

import android.graphics.Typeface;

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Typeface iconfont = Typeface.createFromAsset(getAssets(), "iconfont/iconfont.ttf");
    TextView textview = (TextView)findViewById(R.id.like);
    textview.setTypeface(iconfont);
}

设置完效果如下


android中字体图标的正确使用_第2张图片

就是这么简单完事。但是我们发现在activity代码中setTypeface很没有必要。因为我们整个应用有很多页面都需要设置字体图标时,这样设置会有很多垃圾代码产生。这时我们可以用一个简单的自定义view就解决问题

public class IconFontTextview extends TextView {   
   public  IconFontTextview(Context context) {        
        super(context);       
         init(context);   
    }    

    public IconFontTextview(Context context, AttributeSet attrs) {    
         super(context, attrs);      
          init(context);   
   }    

    public IconFontTextview(Context context, AttributeSet attrs, int defStyleAttr) {        
         super(context, attrs, defStyleAttr);       
         init(context);    
    }       
     private void init(Context context){       
           Typeface iconfont = Typeface.createFromAsset(context.getAssets(), "iconfont/iconfont.ttf");     
           setTypeface(iconfont);  
  }
}

然后就是改一下我们布局文件


其他textview的属性还是正常使用,解决

你可能感兴趣的:(android中字体图标的正确使用)