質問

こんにちはすべて:私は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);
}
役に立ちましたか?

解決

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

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

canvas.drawText(text, 0, 20, paint);

他のヒント

素晴らしい提案はすべて、本当に素晴らしい仕事をしています。次回は、あなたがコメントで男に尋ねると、彼がそれを答えとして投稿する前に完全に明白なことを試みたかどうかを尋ねるといいでしょう。彼が働いていなかったポイントに到達した秒は、実験せずにオーバーフローを積み重ねるためにまっすぐに来たと本当に思いますか?

私は別の提案を持っています。実際の知識なしで答えられる部分だけでなく、質問全体に基づいているということです。

TextViewサブクラスにないキャンバスで、描画可能な状態を管理するTextViewの数百行のコードによってオーバーライドされないように、キャンバスでドローテキストコールを試すことをお勧めします。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top