绘制类以绘制文本

时间:2014-09-07 16:02:34

标签: android

我想在运行时绘制一个Text,但我想绘制一个有三个单词的文本。要求是这些单词应该垂直堆叠。

enter image description here

我能够为一个文本绘制它 - 这是尝试。

protected override void OnDraw(Canvas canvas)
    {
        base.OnDraw(canvas);

        paint.SetStyle(Paint.Style.Stroke);
        paint.AntiAlias = true;
        paint.Dither = true;
        paint.StrokeWidth = 5;
        paint.SetARGB(255, 255, 255, 255);


        textPaint.AntiAlias = true;
        textPaint.SetARGB(255, 255, 255, 255);
        textPaint.TextSize = 30;

        string firstText = "Text1";

        textPaint.TextAlign = Android.Graphics.Paint.Align.Center;

        canvas.DrawCircle(centerCircle.X, centerCircle.Y, circleRadius, paint);

        canvas.DrawText(firstText, centerCircle.X, centerCircle.Y, textPaint);

    }

我没有得到如何在下面绘制下一个Text2 - 我尝试了firstText =“Text1 \ nText2”但没有成功。

请注意 - 我刚刚使用C# Xamarin.Android启动了android。任何帮助和指针表示赞赏。 谢谢:))

1 个答案:

答案 0 :(得分:1)

更改文字的Y位置:

canvas.DrawText(firstText, centerCircle.X, centerCircle.Y - 50, textPaint);
canvas.DrawText(secondText, centerCircle.X, centerCircle.Y, textPaint);
canvas.DrawText(thirdText, centerCircle.X, centerCircle.Y + 50, textPaint);

如果您希望将文字置于圈子中心,请使用measureText的{​​{1}}方法。