2012-07-17 86 views
1

我有一个自定义视图,在这个视图中我想用这些参数绘制文本。android canvas.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

你解决了你的问题吗? – MAC 2012-07-17 12:22:51

+0

是的,我解决了这个问题 – sarath 2012-08-21 07:52:46

回答

1

由于这两个答案的;与此我想出了答案

int stopY = 500; 

scrollTo(0,stopY); 
canvas.drawText(line, 0, stopY, Paint); 

这工作正常。至于你说的它去了,屏幕大小我用

scrollTo(0,stopY); 

因此,它滚动在屏幕这一点,当我用

canvas.drawText(line, 0, stopY, Paint); 

它有抽它没有任何问题。

1
canvas.drawText(String.valueOf(stopY), 40, stopY, Paint); 
       ^^^^^^^^^^^^^^^^^^^^^ 

有你为油漆的颜色? 为前:

mPaint.setColor(Color.RED); 

OR

您正在使用stopY=500; //可能是你的屏幕

尝试stopY=40;和检查输出

+0

谢谢,但我试过这两个,但它没有为我工作。还有其他建议吗? :) – sarath 2012-07-17 12:00:27

+0

okey得到你的问题看到我编辑的答案 – MAC 2012-07-17 12:05:18

+0

还没有更多的想法 – sarath 2012-07-17 13:58:21

2

我认为它去了关闭屏幕尺寸,使用较少的Y值并绘制。

可能是油漆性能问题

canvas.drawText(String.valueOf(angle_Top), 15, 25, new Paint()); 
+0

谢谢我用新的油漆(),但没有运气任何其他去尝试 – sarath 2012-07-17 13:21:37

+0

让我看看你的代码.... – 2012-07-17 13:26:21

+0

显示你的代码或检查我的回答是...为我工作... – 2012-07-17 13:38:59