CanvasとBitmapsを使用してアクティビティを描画しようとしていますが、次のようなものが得られません。
- onDraw関数はいつ呼び出されますか。
- 変更を加えた後、onDraw関数を再度呼び出すにはどうすればよいですか。(
this.invalidate
トリックを行わないようです)。 - キャンバスに何かを描画して変更を加え、後で更新する方法。
誰かがこれらを説明できますか?(サンプルコードは追加のプラスになります)。ありがとう :)
onDraw()は、ビューを含むレイアウトを拡張した後、システムによって最初に呼び出されます。たとえば、onCreate()でContentView()を設定した場合、描画を行うにはUIスレッドをアイドル状態にする必要があるため、少なくともonCreate()が戻るまでは描画されません。
invalidate()はこれを行う方法です。onDraw内から呼び出さないでください。呼び出さないと、無限ループに陥ります。
繰り返しますが、再描画が必要な場合は常にinvalidate()を使用してください。それがその目的です。