一:背景
项目中需要这样的效果:
效果图就是普通的textview后面要跟上置顶,精华等标签.
二:思路
(1)首先想到的是把置顶,精华这样的标签当成图片!在textview后面跟图片应该很容易实现,具体特性textview后面怎么跟图片,可自行百度,有很多方法,很简单
(2)第二种想到的是用SpannableString,用法如下
具体实现说明:
(1)创建SpannableString对象,传入的参数就是textview要显示的文字,就相当于"今日手游:我要制作出...置顶 精华"
(2)然后创建了一个bg,这个bg就是"精华"文字后面的背景,注意一定要给这个bg设置大小,也就是setBounds(),否则其大小为0
(3)start 和 end 就是你想处理title的哪一段字符串,这里我们处理最后两个
(4)paint的设置颜色和文字大小就是我们要处理那部分文字的颜色和大小,对应的是"精华"
这样做完之后,会发现有一个问题,就是如果第二行只有一个标签的话,会显示的不对,比如当"置顶"标签独自在下一行的时候也许会这样:
异常图产生这个问题的原因:在给标签画背景的时候,基准线除了问题,当某一行不止一个标签存在的时候就不会出现这个问题,所以我们的解决方案是在title后面增加一个空格,也就是相当于在这个"置顶"标签后面还有一个空格,这样的话就不会出现基准线问题,问题也就解决了,亲测可行.
网友评论