美文网首页
ImageSpan图片和在行文字居中

ImageSpan图片和在行文字居中

作者: 蒸汽飞船 | 来源:发表于2018-04-19 17:32 被阅读10次

文字中添加图标:

/** 文字中增加图标 */
    public static Spannable addDrawableInText(int start, int end, int resouceId, Spannable text) {
        Drawable drawable = SkinManager.getInstance().getDrawable(resouceId);
        drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
        text.setSpan(new MyImageSpan(drawable), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        return text;
    }

图片span

public class MyImageSpan extends ImageSpan {
    public MyImageSpan(Context arg0, int arg1) {
        super(arg0, arg1);
    }

    public MyImageSpan(Drawable d) {
        super(d);
    }

    @Override
    public void draw(Canvas canvas, CharSequence text, int start, int end,
                     float x, int top, int y, int bottom, Paint paint) {

        Drawable b = getDrawable();
        // font metrics of text to be replaced
        Paint.FontMetricsInt fm = paint.getFontMetricsInt();
        int transY = (y + fm.descent + y + fm.ascent) / 2
                - b.getBounds().bottom / 2;

        canvas.save();
        canvas.translate(x, transY);
        b.draw(canvas);
        canvas.restore();
    }
}

点击和颜色的span:

class TopicsBlueSpan extends ClickableSpan {
    private String content;

    public TopicsBlueSpan(String content) {
        this.content = content;
    }

    @Override
    public void updateDrawState(TextPaint ds) {
        ds.setColor(Color.BLUE);
        ds.setUnderlineText(false);
    }

    @Override
    public void onClick(View widget) {
        ...
    }
}

此时点击后会出现文字选中出现淡绿色的背景色现象。ds.setColor()设定的是span超链接的文本颜色,而不是点击后的颜色,点击后的背景颜色HighLightColor属于TextView的属性,通过方法
textview.setHighlightColor(Color.TRANSPARENT);解决。

相关文章

  • ImageSpan图片和在行文字居中

    文字中添加图标: 图片span 点击和颜色的span: 此时点击后会出现文字选中出现淡绿色的背景色现象。ds.se...

  • ImageSpan图片不能居中的问题

    使用ImageSpan的童鞋应该都会遇到这样一个困惑,图片不能居中显示,ImageSpan中只有ImageSpan...

  • android 富文本

    主要思路 用 ImageSpan 来实现添加图片 一个图片占一行,不然会有问题(文字输入后) 1.ImageSpa...

  • 记事本制作网页

    ··· 文字/图片 //文字/图片居中···

  • HTML 水平居中和垂直居中

    水平居中 文字居中 图片居中 绝对定位元素 居中 相对定位 负边距居中 垂直居中 文字设置line-height ...

  • 在textView中添加 drawable

    使用ImageSpan: 用TextView本身的属性同时显示图片和文字 TextView 有这些属性: dra...

  • CSS居中大全(带截图)

    文字水平居中 图片水平垂直居中 图片与文字水平垂直居中 代码同上 DIV相对于页面垂直居中并且响应式 视口绝对垂直...

  • iOS 按钮图片文字上下居中

    按钮图片文字上下居中处理

  • UIButton用法总结

    纯文字上下居中布局 2.图片在上,文字在下居中对齐 3.文字在左,图片在右 4.其他布局 UIControlEve...

  • CSS中几种常用的居中

    居中 行内元素水平居中 文字相对图片、输入框垂直居中 块元素水平居中 单行文字垂直居中 更灵活的布局方式当然是建议...

网友评论

      本文标题:ImageSpan图片和在行文字居中

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