在Android中的Canvas中绘制文本

时间:2012-02-03 16:41:12

标签: java android android-layout android-widget

我想在Canvas中绘制文本(在需要时自动添加新行)。那是我的示例代码:

    Bitmap src= getBitmap();
    Bitmap dest = Bitmap.createBitmap(src.getWidth(), src.getHeight(), Bitmap.Config.ARGB_8888);
    Canvas cs = new Canvas(dest);
    cs.drawBitmap(src, 0f, 0f, null);
    TextPaint tp= new TextPaint();
    tp.setTextSize(.....);
    tp. //Custom the text properties
    StaticLayout sl= new StaticLayout(text, tp, src.getWidth(), Layout.Alignment.ALIGN_CENTER, 1.0f, 0.0f, false);
    sl.draw(cs);

这适用于使用“center | top”重力绘制文本。但是我需要能够制作“中心”和“中心|底部”。 鉴于画布 src sl 很容易计算sl必须去哪里但是 如何更改StaticLayout的“起始点”以添加填充?

由于

1 个答案:

答案 0 :(得分:2)

你可以在“宽度”论证中为StaticLayout / DynamicLayout提供更多空间, 要在文本的顶部/底部获得一些填充,您可以使用“canvas.translate(x,y)”