我的情况如下
在我的线性布局中,我添加了一个包含画布的View(MyView)
drawLayout.addView(new MyView(this,"a"));
现在我想在画布中的在linearlayout 的中间画一个文本,为此我计算了linearlayout的高度和宽度(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的linearLayout。
因此我无法在linearLayout的中心绘制文本。
我在这个问题上坚持了5个小时。帮助我摆脱这种局面。
答案 0 :(得分:0)
您的居中代码错误。您的代码将绘制不在中心的文本,而是略微向下和向右绘制 - 画布的中心将是文本的左上角。
如果您想在中心绘制文字,则需要考虑文字的大小 - ((canvas.getWidth() - letterWidth) /2, (canvas.getHeight() - letterHeight) / 2))