项目中遇到一个需求,需要在商品标题加上标签,而标签是客户可以后台配置的,所以不是用的图片,而是用的文字.如下图:
众所周知,在Android中,View都是呈方形布置的,所以如果标签和文字如果不是同一个View,那么如果文字换行,就会出现标签和TextView分别在左右两边的效果:
经过思考和查阅资料,发现可以用SpannableString设置背景,并通过重写ReplacementSpan替换原来的BackgroundColorSpan来实现圆角标签.
下面是代码:
Activity: (goodsTags为标签文字集合,即上图的"促","九","八"...goodsName为商品名字for (int i = 0; i
//为了显示效果在每个标签文字前加两个空格,后面加三个空格(前两个和后两个填充背景,最后一个作标签分割)
goodsName.insert(0, " " + goodsTags.get(i).getTags_name() + " ");
int start = 0;
int end = 5;
//稍微设置标签文字小一点
goodsName.setSpan(n