2012-03-09 182 views
1

我有一個旋轉的TextView類,它的畫布我在的onDraw方法旋轉:是否可以在Android中擴展Canvas?

@Override 
protected void onDraw(final Canvas canvas) { 
    canvas.save(); 
    canvas.rotate(-90); 
    canvas.translate(-getHeight(), 0); 
    super.onDraw(canvas); 
    canvas.restore(); 
} 

TextView的被正確地定位和旋轉,但文字似乎得到剪掉:

rotated text view with clipped off text

如何正確地擴展Canvas,使TextView不會將文本截斷?

注意高亮區域是super.onDraw(canvas)前右繪製的canvas的剪輯範圍的結果,所以我知道剪輯區域是正確的。

+0

你肯定是有過錯的印刷品嗎? – 2012-03-10 01:54:37

+0

不是真的,@JesseJ,從探索 - 它看起來可能TextView忽略其畫布的大小,只使用其佈局大小。有什麼建議麼? – Warlax 2012-03-12 12:35:32

+0

不太確定。我不太確定它爲什麼會被切斷。用TextView做什麼,像旋轉它? – 2012-03-12 20:16:15

回答

0

當然,文本被剪掉! 如果旋轉畫布,則只需旋轉View中的圖形,而邊界(不依賴於Canvas,但它們由View定義)不會旋轉。
因此,你必須旋轉整個View,就像下面的代碼:

this.setRotation(-90); // 'this' is your view.