美文网首页
Android IconFont

Android IconFont

作者: 潜心之力 | 来源:发表于2018-06-18 16:57 被阅读0次

一、简介

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中
    <string name="icon_fish">&#x343c;</string>
在布局文件中引用iconfont
            <com.IconFontTextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/icon_fish" />
代码错误写法:
mIconFontTextView.setText("&#x343c;");
代码正确写法:
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

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