9

こんにちは。 TextView から継承し、そのonDraw()メソッドをオーバーライドするクラスを作成していますが、メソッドでは、呼び出しがcanvas.drawText()機能しないようです。コードは次のようになります。

protected void onDraw(Canvas canvas) {
    // super.onDraw(canvas);
    Paint paint = new Paint();
    paint.setColor(android.graphics.Color.WHITE);
    paint.setTextSize(20);

    String text = "hello";
    canvas.drawText(text, 0, 0, paint);
}
4

2 に答える 2

23

テキスト座標が左下にあるため、何も描画されていません。0,0 に描画しようとしているので、画面の上に描画されます。

最後の行を次のように変更してみてください。

canvas.drawText(text, 0, 20, paint);
于 2010-12-07T01:13:44.790 に答える
-2

素晴らしい提案、本当に素晴らしい仕事をしてくれました。次回は、回答として投稿する前に、彼が完全に明白なことを試したかどうかをコメントまたは何かでその人に尋ねるといいでしょう. 彼が機能していない点に到達した瞬間に、彼は実験せずにスタック オーバーフローに直行したと本当に思いますか?

私は別の提案をしています.クレイジーなことに、実際の知識がなくても答えられる部分だけではなく、質問全体に基づいているということです.

描画可能な状態を管理するTextViewの数百行のコードによってオーバーライドされないように、TextViewサブクラスにないCanvasでdrawText呼び出しを試すことをお勧めします。

于 2012-11-27T11:12:51.273 に答える