0

我有如下情况

在此处输入图像描述

在我的线性布局中,我添加了一个包含画布的视图(MyView)

drawLayout.addView(new MyView(this,"a"));

现在我想在线性布局中间的画布中绘制一个文本,为此我计算线性布局的高度和宽度(drawWidth,drawHeight)然后写这个,

canvas.drawText(letterTOdraw,drawWidth/2,drawHeight/2,mpaint);

但它没有正确绘制(不在中心)。之后我修改如下

canvas.drawText(letterTOdraw,canvas.getWidth()/2,canvas.getHeight()/2,mpaint);

但什么都没有改变。当我计算画布高度和宽度时,我很惊讶我给了我 600 X 1024 ,我怎么可能将 MyView 设置为只有 951X359 的线性布局。

因此我无法在线性布局的中心绘制文本。

我在过去 5 小时内都陷入了这个问题。帮助我摆脱困境。

4

1 回答 1

0

您的居中代码错误。您的代码将不会在中心绘制文本,而是稍微向底部和右侧绘制文本 - 画布的中心将是文本的左上角。

如果要在中心绘制文本,则需要考虑文本的大小 - 在((canvas.getWidth() - letterWidth) /2, (canvas.getHeight() - letterHeight) / 2))

于 2012-12-26T10:36:07.103 回答