Android中正确使用字体图标(iconfont)的方法

 更新时间:2016年10月17日 09:20:56   投稿:daisy  
IconFont字体不仅仅流行于Web开发,在移动开发中也渐渐的使用的范围更广泛。这篇文章主要介绍了在Android开发中使用icon font的代码和方法。对大家学习使用iconfont有一定的参考借鉴价值,有需要的朋友们下面来一起看看吧。

字体图标

字体图标是指将图标做成字体文件(.ttf),从而代替传统的png等图标资源。

使用字体图标的优点和缺点分别为:

优点:

      1. 可以高度自定义图标的样式(包括大小和颜色),对于个人开发者尤其适用

      2. 可以减少项目和安装包的大小(特别你的项目中有很多图片icon时,效果将是M级)

      3. 几乎可以忽略屏幕大小和分辨率,做到更好的适配

      4. 使用简单

      ……

缺点: 
      1. 只能是一些简单的icon,不能代替如背景图、9图等资源

      2. 一些需要文字说明的icon,图片资源将会是更好的选择

      3. 对设计的要求更高,不同icon可能拥有不同的边距,这时要切换icon时还要设置大小

      4. 由于边距的存在可能存在无法填满控件的情况

      5. 无法在Android studio中进行实时预览

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

      1、自由变化大小

      2、自由修改颜色

      3、可以添加一些视觉效果如:阴影、旋转、透明度。

      4、比单位的图片更节省资源

正常的添加方案

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

 

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

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

<string name="icons"> 手机</string>

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

<TextView
  android:id="@+id/like"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:text="@string/icons" />

第五步:为 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);
}

设置完效果如下

 

就是这么简单完事。但是我们发现在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); 
 }
}

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

<com.xiaoming.liaoliao.view.IconFontTextview      
   android:layout_width="wrap_content"   
   android:layout_height="wrap_content" 
   android:textSize="20dp"  
  android:textColor="@android:color/holo_red_dark"  
  android:text=" 手机" />

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

总结

如你所见,使用字体图标可以高度自定义图标的大小和颜色,对于个人开发者来说是一个特别好的消息,再也不用在找图标时考虑颜色和大小了。以上就是在Android中正确使用字体图标(iconfont)的方法,希望这篇文章对各位Android开发者们能有所帮助,如果有疑问大家可以留言交流。谢谢大家低脚本之家的支持。

相关文章

  • Android三种GSM手机定位技术分析

    Android三种GSM手机定位技术分析

    本文将详细介绍Android三种GSM手机定位技术比较差别,有感兴趣的朋友可以参考下
    2012-12-12
  • Android和JavaScript相互调用的方法

    Android和JavaScript相互调用的方法

    这篇文章主要介绍了Android和JavaScript相互调用的方法,实例分析了Android的WebView执行JavaScript及JavaScript访问Android的技巧,需要的朋友可以参考下
    2015-12-12
  • Android菜单(动画菜单、360波纹菜单)

    Android菜单(动画菜单、360波纹菜单)

    本文主要介绍了Android菜单常用集合:FragmentTabHost系统菜单、上移式菜单、360波纹菜单、展开式菜单。详解注释,可直接拿来用。下面跟着小编一起来看下吧
    2017-03-03
  • Android 之BottomsheetDialogFragment仿抖音评论底部弹出对话框效果(实例代码)

    Android 之BottomsheetDialogFragment仿抖音评论底部弹出对话框效果(实例代码)

    这篇文章主要介绍了Android 中之BottomsheetDialogFragment仿抖音评论底部弹出对话框效果,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-04-04
  • Android完整Socket解决方案

    Android完整Socket解决方案

    这篇文章主要介绍了Android完整Socket解决方案并通过代码给大家做了实例分析,对此有兴趣的朋友学习下。
    2018-02-02
  • Android Studio IDE升级4.1以后Start Failed

    Android Studio IDE升级4.1以后Start Failed

    这篇文章主要介绍了Android Studio IDE升级4.1以后Start Failed,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • Android小程序实现音乐播放列表

    Android小程序实现音乐播放列表

    这篇文章主要为大家详细介绍了Android小程序实现音乐播放列表,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-05-05
  • 浅谈android组件化之ARouter简单使用

    浅谈android组件化之ARouter简单使用

    本篇文章主要介绍了浅谈android组件化之ARouter简单使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • android实现贝塞尔曲线之波浪效果

    android实现贝塞尔曲线之波浪效果

    这篇文章主要为大家详细介绍了android实现贝塞尔曲线之波浪效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-06-06
  • Android判断当前App是在前台还是在后台

    Android判断当前App是在前台还是在后台

    这篇文章主要为大家详细介绍了Android判断当前App是在前台还是在后台的方法,感兴趣的小伙伴们可以参考一下
    2016-08-08

最新评论