android中字体图标的正确使用

作者: 我是李戴表 | 来源:发表于2016-10-13 17:14 被阅读478次

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

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

    正常的添加方案

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


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

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

    <string name="icons">&#xe604;  手机</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="&#xe604; 手机" />
    

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

    <p>

    相关文章

      网友评论

        本文标题:android中字体图标的正确使用

        本文链接:https://www.haomeiwen.com/subject/dwwwyttx.html