美文网首页
SpannableString的一次使用

SpannableString的一次使用

作者: 选一个昵称这么难 | 来源:发表于2017-08-29 18:04 被阅读60次

    一:背景

    项目中需要这样的效果:

    效果图

    就是普通的textview后面要跟上置顶,精华等标签.

    二:思路

    (1)首先想到的是把置顶,精华这样的标签当成图片!在textview后面跟图片应该很容易实现,具体特性textview后面怎么跟图片,可自行百度,有很多方法,很简单

    (2)第二种想到的是用SpannableString,用法如下

    具体实现

    说明:

    (1)创建SpannableString对象,传入的参数就是textview要显示的文字,就相当于"今日手游:我要制作出...置顶 精华"

    (2)然后创建了一个bg,这个bg就是"精华"文字后面的背景,注意一定要给这个bg设置大小,也就是setBounds(),否则其大小为0

    (3)start 和 end 就是你想处理title的哪一段字符串,这里我们处理最后两个

    (4)paint的设置颜色和文字大小就是我们要处理那部分文字的颜色和大小,对应的是"精华"

    这样做完之后,会发现有一个问题,就是如果第二行只有一个标签的话,会显示的不对,比如当"置顶"标签独自在下一行的时候也许会这样:

    异常图

    产生这个问题的原因:在给标签画背景的时候,基准线除了问题,当某一行不止一个标签存在的时候就不会出现这个问题,所以我们的解决方案是在title后面增加一个空格,也就是相当于在这个"置顶"标签后面还有一个空格,这样的话就不会出现基准线问题,问题也就解决了,亲测可行.

    相关文章

      网友评论

          本文标题:SpannableString的一次使用

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