美文网首页
当遭遇上the fucking lingspaceExtra时

当遭遇上the fucking lingspaceExtra时

作者: brzhang | 来源:发表于2017-01-03 10:28 被阅读80次

当遭遇上the fucking lingspaceExtra时,至少会出现两个让你头疼的问题:

1、当你在编辑内容的时候,你会遇到这个问题

Paste_Image.png

详细的可以戳这里:
http://stackoverflow.com/questions/27421809/edittext-linespacingextra-strange-behavior

解决办法:自己重写Textview/Edittext ,并且覆写下onTextChanged方法。

@Override
protected void onTextChanged(CharSequence text, int start, int lengthBefore, int lengthAfter) {
    super.onTextChanged(text, start, lengthBefore, lengthAfter);
    float add = getLineSpacingExtra();
    float mul = getLineSpacingMultiplier();
    setLineSpacing(0f, 1f);
    setLineSpacing(add, mul);
}

2、ImageSpan错位了,细心的你会发现。错位的大小恰好是lingspaceExtra。

Paste_Image.png

详细的可以戳这里:
http://stackoverflow.com/questions/31539860/imagespan-align-baseline-when-textview-has-linespacing

解决办法:自己重写ImageSpan,覆盖Draw方法

@Override
public void draw(Canvas canvas, CharSequence text, int start, int end, float x, int top, int y, int bottom, Paint paint) {
    //super.draw(canvas, text, start, end, x, top, y, bottom, paint);
    Drawable drawable = getDrawable();
    canvas.save();
    Paint.FontMetricsInt fmPaint = paint.getFontMetricsInt();
    int fontHeight = fmPaint.descent - fmPaint.ascent;
    int centerY = y + fmPaint.descent - fontHeight / 2;
    int transY = centerY - (drawable.getBounds().bottom - drawable.getBounds().top) / 2;
    canvas.translate(x, transY);
    drawable.draw(canvas);
    canvas.restore();
}

我这里的对其方式是:ALIGN_BASELINE,drawable 的bounds设置为你字体的大小
d.setBounds(0, 0, dimen, dimen);

相关文章

  • 当遭遇上the fucking lingspaceExtra时

    当遭遇上the fucking lingspaceExtra时,至少会出现两个让你头疼的问题: 1、当你在编辑内容...

  • 当短跑遇上长跑时

    学生的一生,是一场探索的长跑。而老师们,扮演的角色却只是陪跑接力赛中的某一棒。可是,在这场接力赛中,更多时...

  • 当遇上坏情绪时

    情绪真的非常影响人。所以有不少人写书说要掌控你的情绪,管理你的情绪,谁能管理好自己的情绪,谁就能成为成功的人。 我...

  • 当备考遇上加班时……

    天色蒙蒙闹钟响 睡眼惺忪起床忙 以为好学来晨读 谁知是要把砖搬 星星闪,月儿挂 面迎晨风大步踏 干饭人意气风发 然...

  • fucking bitch

    you fucking lie you fucking bitch

  • 《业力管理》读后感——创造你想要的富足人生

    “当和尚遇上钻石”? 和尚就是和尚, 钻石就是钻石,怎么遇上呢?遇上了会怎样呢? “当我遇上了格西老师,半年多的时...

  • 当文字遇上自己时

  • 当杨枝遇上甘露时

    在当今世界最高的饮食评级《米芝莲指南》中,评分标准由一星到三星。一星代表在该菜系内的好餐厅,二星是值得绕道到访的杰...

  • 当诗词遇上吃货时

    秋分,平分秋色,多贮脂,好御寒。没有文人的“迎候你时,一树芬芳;送别你时,满庭花雨。”的诗意,只有一个吃货的片片心...

  • 当生命遇上工作时

    还有七天,我人生又要进入下一个阶段了! 我要开始迎接我人生第一份正式的工作了。虽然,此刻还未体检,还未分配...

网友评论

      本文标题:当遭遇上the fucking lingspaceExtra时

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