我有一个标签云,其中标签有背景颜色.不幸的是,我无法获得行间距.
我们假设这是文本云:
tag1 tag2 tag3
tagtext4 tagtext5
这是文本视图的样式:
@color/gray_value
sans-serif-condensed
BackgroundColorSpan用于为标签设置蓝色背景颜色.然而,线之间没有空间,即两条线的背景颜色没有分开.
当我为文本视图设置行间距时,例如到12sp,它增加了行间距,但使用标记的背景颜色而不是textview背景颜色来建立行间距.
知道如何使用文本视图背景颜色获得行间距?
更新
使用这个solution作为指导,我提出了这种方法:绘制文本的背景,在顶部和底部用填充绘制文本的背景,绘制文本.因为我之前没有使用过画布,所以可能有更好的方法.无论如何 – 这是代码.
public void draw(Canvas canvas, CharSequence text, int start, int end, float x,
int top, int y, int bottom, Paint paint)
{
float padding;
float right
RectF rect;
right = x + measureText(paint, text, start, end);
padding = 4f;
rect = new RectF( x, top, right, bottom );
paint.setColor( mContext.getResources().getColor(R.color.color1) );
rect = new RectF( x, top + padding, right, bottom - padding);
paint.setColor( mContext.getResources().getColor(R.color.bg_color_tag_item) );
canvas.drawRect(rect, paint);
paint.setColor( mContext.getResources().getColor(R.color.data_entry_value) );
canvas.drawText(text, start, end, x, y, paint);
}
它现在看起来像这样:
很高兴知道:有更好的解决方案吗?