Android IconFont

一、简介

Iconfont是阿里巴巴出版的矢量文字图标,目前仅支持单色的图标,优势在于体积小,使用方便,在Android中应用iconfont,可以减少安装包的体积。

二、使用方法

把iconfont.ttf文件放在main/assets/目录下,然后自定义TextView,识别字符编码

import android.content.Context;
import android.graphics.Typeface;
import android.support.annotation.Nullable;
import android.support.v7.widget.AppCompatTextView;
import android.util.AttributeSet;
import android.view.Gravity;

public class IconFontTextView extends AppCompatTextView {
    public IconFontTextView(Context context) {
        this(context, null);
    }

    public IconFontTextView(Context context, @Nullable AttributeSet attrs) {
        this(context, attrs, 0);
    }

    public IconFontTextView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        init();
    }

    private void init() {
        Typeface typeface = Typeface.createFromAsset(getContext().getAssets(), "iconfont.ttf");
        this.setTypeface(typeface);
        this.setGravity(Gravity.CENTER);
    }
}
把图片的字符编码写入res/values/strings.xml中
    
在布局文件中引用iconfont
            
代码错误写法:
mIconFontTextView.setText("㐼");
代码正确写法:
mIconFontTextView.setText( getResources().getString(R.stringicon_fish));

三、系统自带Emoji

        int unicodeJoy = 0x1F602; -> 表情字符编码
        String emojiString = getEmojiStringByUnicode(unicodeJoy);
        mLoginButton.setText(emojiString);

        private String getEmojiStringByUnicode(int unicode){
            return new String(Character.toChars(unicode));
        }

你可能感兴趣的:(Android IconFont)