我有一个自定义视图,我想用这些参数drawText。
int stopY = 500;
// ...
Log.info("Drawing line " + line + " at " + String.valueOf(stopY));
canvas.drawText(line, 40, stopY, Paint);
我有一系列文字 而我正在画画
for (int i = startLineNumber; i < (startLineNumber + linesVisible); i++, screenDisplayLine++)
{
if (i >= totalLines)
{
break;
}
int startY = (int) (i*lineSpacing + (screenDisplayLine * lineSpacing));
int stopY = startY + lineSpacing;
canvas.drawText(line, 40, stopY, Paint);//stop y increments by 20 every time i use
}
它直接工作,但当我需要startnumber为50
这意味着
stopy = stopY+(linenumber*20)//(stopY + (50 * 20))
但在这种情况下失败
任何帮助
我可以通过LogCat在日志中看到正确的值,但不会绘制文本。 任何人都可以帮助我吗?
答案 0 :(得分:2)
我认为它会超出屏幕尺寸,为Y使用较少的值并绘制。
或强>
可能是绘画功能的问题
canvas.drawText(String.valueOf(angle_Top), 15, 25, new Paint());
答案 1 :(得分:1)
canvas.drawText(String.valueOf(stopY), 40, stopY, Paint);
^^^^^^^^^^^^^^^^^^^^^
你设置了油漆的颜色吗?
例如:
mPaint.setColor(Color.RED);
或
您正在使用stopY=500;
//可能不在屏幕上
尝试stopY=40;
并检查输出
答案 2 :(得分:1)
感谢你的回答;我找到了答案
int stopY = 500;
scrollTo(0,stopY);
canvas.drawText(line, 0, stopY, Paint);
这很好用。正如你所说的那样,我使用了
scrollTo(0,stopY);
这样它就会滚动到屏幕上的那个点,当我使用
时canvas.drawText(line, 0, stopY, Paint);
它已经毫无问题地将它绘制在那里。