Java 将矩形和文本并排放置

Java 将矩形和文本并排放置,java,c#,android,canvas,xamarin,Java,C#,Android,Canvas,Xamarin,我试图在android画布中并排放置矩形和文本。我能画出他们两个,但他们在许多领域重叠。矩形和文本是动态的。我目前拥有的代码是 int left = 50; int top = 50; int width = 50; int height = 50; for (int row = 0; row < rows; row++) { for (int col = 0; col < cols; col++) { rectanglePaint.Color = (Colo

我试图在android画布中并排放置矩形和文本。我能画出他们两个,但他们在许多领域重叠。矩形和文本是动态的。我目前拥有的代码是

int left = 50;
int top = 50;
int width = 50;
int height = 50;
for (int row = 0; row < rows; row++) {
    for (int col = 0; col < cols; col++) {
        rectanglePaint.Color = (Color.ParseColor("#CD5C5C"));
        canvas.DrawRect(left, top, left + width, top + height, rectanglePaint);
        left = (left + width + 50);
        rectanglePaint.TextSize = 30;
        canvas.DrawText("Mytext", left, top + height - 10, rectanglePaint);
    }
    top = top + height + 10;
}
谁能帮我解决这个问题? 注意:我没有足够的声誉来发布图片

编辑:我的新代码如下:

for (int col = 0; col < 1; col++) { // draw 4 columns
    rectanglePaint.Color = (Color.ParseColor("#CD5C5C"));
    canvas.DrawRect(left, top, left + width, top + height, rectanglePaint);
    left = (left + width + 50);
    string text = "Mytext";
    int spacing = 10;


    canvas.DrawText(text, left, top + height - 10, rectanglePaint);
 left += rectanglePaint.MeasureText(text) + spacing;
    //left = (left + width + 10); // set new left co-ordinate + 10 pixel gap
    //rectanglePaint.TextSize = 30;
    //canvas.DrawText("Mytext",left+5,top+height-10,rectanglePaint);
    // Do other things here
    // i.e. change colour
}

我认为如果你改变了,这会让你走上正确的道路

canvas.DrawText("Mytext",left,top+height-10,rectanglePaint);


您可能需要更改间距的值,以获得文本与下一个正方形之间所需的间距。

您想在何处查看“MyText”?我想在矩形旁边查看MyText,如-[]MyText[]MyText[]MyText[]MyText。我实际上是在为不同布局的图表创建图例。我无法在同一个画布上同时获得这两个元素。所以你是否尝试过调整矩形和文本的x和y坐标,以使它们不会重叠?我在代码中使用了宽度和高度,左边我有…没有太多帮助。文本根本不可见。我只看到矩形。我使用了间距和其他值,但没有任何效果。你确定你的代码与我的示例中的代码完全相同吗?我不明白这怎么可能使文本完全消失。至少,Mytext的第一个实例应该与原始代码位于完全相同的位置。如果您注释掉了我的示例中的最后一行,那么您应该完全恢复到原来的状态,因此,如果您仍然没有收到任何文本,您必须更改了其他内容。为了更好地表示代码,我编辑了您的注释。@user2344145我已将您最新的代码块添加到问题中。
int spacing = 10;
String text = "Mytext";
canvas.DrawText(text,left,top+height-10,rectanglePaint);
left += rectanglePaint.measureText(text) + spacing;