腾讯的QMUI已经问世好长时间了,然而官方至今也没有给出一个详细的文档。为了方便大家使用,我就把我用过的控件的使用方法记录下来。
先来个效果图,由于我没有现成的表情图片,只好先用软件图标代替了。
官方说QMUIQQFaceView实质上并不是TextView,所以用法和TextView还是有差异的。
首先,自定义一个控件继承QMUIQQFaceView;
import android.content.Context;
import android.util.AttributeSet;
import com.qmuiteam.qmui.qqface.QMUIQQFaceCompiler;
import com.qmuiteam.qmui.qqface.QMUIQQFaceView;
public class FaceViewextends QMUIQQFaceView {
public FaceView(Context context) {
super(context);
}
public FaceView(Context context, AttributeSet attrs) {
super(context, attrs);
setCompiler(QMUIQQFaceCompiler.getInstance(FaceManager.getInstance()));
}
}
然后再贴上FaceManager的代码;
import android.graphics.drawable.Drawable;
import com.qmuiteam.qmui.qqface.IQMUIQQFaceManager;
public class FaceManagerimplements IQMUIQQFaceManager {
private static FaceManagerfaceManager=new FaceManager();
public static FaceManagergetInstance(){
return faceManager;
}
@Override
public boolean maybeSoftBankEmoji(char c) {
return false;
}
@Override
public int getSoftbankEmojiResource(char c) {
return 0;
}
@Override
public boolean maybeEmoji(int codePoint) {
return false;
}
@Override
public int getEmojiResource(int codePoint) {
return 0;
}
@Override
public int getDoubleUnicodeEmoji(int currentCodePoint, int nextCodePoint) {
return 0;
}
@Override
public int getQQfaceResource(CharSequence text) {
if (text.equals("[微笑]"))
return R.mipmap.ic_launcher;
return 0;
}
@Override
public DrawablegetSpecialBoundsDrawable(CharSequence text) {
return null;
}
@Override
public int getSpecialDrawableMaxHeight() {
return 0;
}
}
这样就可以像用TextView一样使用FaceView了,只要它的字符串中有 [微笑] 就会替换成特定的表情。