2012-07-17 78 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