我想在屏幕画布上绘制与第一个字符串相邻的第二个字符串。第二个字符串的起点应该是第一个字符串的宽度。我使用的是Android的paint.measuretext()方法。但它返回的宽度小于实际宽度。所以我的第二个字符串与第一个字符串重叠。有谁能解释一下如何得到一根线的准确宽度?
testString1 = "44444444444444444444444444444444444444444";
testString2 = "Sample Test String";
canvas.drawText(testString1,0,50, paint);
int textWidth = (int)paint.measureText(testString1);
canvas.drawText(testString2,textWidth,50, paint);发布于 2012-01-10 06:32:44
measuretext()是更精确的测量器。因此,您在测量和绘制之间更改了文本本身、字体或字体大小或其他内容。
也可以在here上寻找其他的测量方法。但是不要等待太多-- measuretext是一个很好的测量者,错误几乎肯定在你这边。
新编辑:为string1+string1检查相同的函数-如果结果将是以前的2倍?如果是,这意味着你正在等待一个单元的结果,而你正在等待另一个单元的结果。(measuretext以缩放像素为单位工作)。也许画布或画布使用不同的度量来设置x,y和文本度量。
编辑2:不正确的缩放可以由仿真器定义。在那里尝试不同的分辨率/屏幕尺寸。如果会影响结果,则应找到Paint/Canvas参数,通过该参数可以补偿屏幕分辨率的影响。
https://stackoverflow.com/questions/8791718
复制相似问题