一、简介
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">㐼</string>
在布局文件中引用iconfont
<com.IconFontTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/icon_fish" />
代码错误写法:
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));
}
网友评论