2012-03-09 16 views
1

私はキャンバス私はonDrawメソッドに回転する回転のTextViewクラスを持っている: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

は、あなたはそれが、故障でキャンバスのですか? –

+0

本当に、@ JesseJは、探索から - TextViewはキャンバスのサイズを無視し、レイアウトサイズのみを使用するように見えます。助言がありますか? – Warlax

+0

わからない。私はなぜそれが途切れているのかよく分かりません。 TextViewで回転させるなど、何かをするのはどうですか? –

答えて

0

もちろん、テキストは切り捨てられます。 キャンバスを回転させると、図形をView内で回転させるだけですが、境界は(Canvasに依存しませんが、Viewで定義されています)回転されません。
したがって、あなただけの下のコードのように、全体Viewを回転する必要があります。

this.setRotation(-90); // 'this' is your view. 
関連する問題