Android ReplacementSpan 文字对齐问题

标签: androidSpan文字对齐
319人阅读 评论(0) 收藏 举报
分类:

项目中需要在TextView中高亮显示‘@人员的名称’,实现方法采用自定义ReplacementSpan,遇到高亮的文字与文本对齐问题。

解决方案:
ReplacementSpan的draw方法实现

@Override
    public void draw(@NonNull Canvas canvas, CharSequence text, int start, int end, float x, int top, int y, int bottom, @NonNull Paint paint) {
        if(!TextUtils.isEmpty(mUserName)){
            canvas.save();
            int color = paint.getColor();
            if(mColor != 0) {
                paint.setColor(mColor);
            }
            //@文字对齐
            int transY = bottom - y;
            transY -= paint.getFontMetricsInt().descent;
            canvas.translate(0,transY);
            canvas.drawText(mUserName,0,mUserName.length(),x,y,paint);
            paint.setColor(color);
            canvas.restore();
        }
    }

其中mUserName就是要显示的‘@人员的名称’

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:645875次
    • 积分:4792
    • 等级:
    • 排名:第6305名
    • 原创:106篇
    • 转载:22篇
    • 译文:5篇
    • 评论:345条
    关于我
    博客专栏
    最新评论