私は、Androidに新しいですし、私が概念を理解するトラブルを抱えていますので、基本的に、これは私はそれをよりよく理解するために何をしたいのか..ですAndroidのOnDraw()
私はビューを拡張行うdrawShapeクラスを作成しました。 OnDraw()のこのクラスでは、円を作成して色で塗りつぶしています。
私はアプリケーションを呼び出しています。 //この時点まで私はうまくやっています。今
、私は再塗装サークルを複数回する必要があります(ブルー、レッド、イエローなど。)
だから私は読んでいたし、最善の方法は、スレッドを使用することです。私も読んでpostInvalidate()を使って再描画する必要があります(私はこれを呼び出す必要がある場所からまだ理解していません)、これはアクティビティから呼び出されますか?、またはOnDraw()内で呼び出されますか?
うまくいけば、私が達成したいことを理解しておいてほしい、ちょうど私はこれを示す良いチュートリアルを見いだして、x倍の時間を再描画する方法です。Thread.sleep()を実行すると、私のアプリ..しかし、今なぜ私はメインのスレッドで遊んでいるので、理解しています。
私はこのことを理解して助けてください..
は、私は、あなたがあなたの活動の内部でタイマーとTimerTaskをを使用してこれを行うことができると思い、あなたに
グレート私はランで、その後円を再描画する必要がある場合は、()i)はキャンバスC =新しいキャンバスのようなものを(置くことができます。ペイントペイント=新しいペイント();私はここからこれをすることができますか?何をお勧めしますか?また、ビューを拡張するクラスがある場合は、myClass.OnDraw()のようなことをすることはできますか? ? – earm
ここではいくつかのことがあります:スレッドは、キャンバスに影響を与える値を更新するために使用する必要があります。ゲーム中のキャラクターの位置を動かすこと++ x(キャラクターを水平にある位置に動かす)。スレッドを使用して描画する円の数の値を変更し、変更する色を変更することができます。 postInvalidate()を呼び出すと、canvas onDraw()関数も呼び出されるため、onDraw()を直接呼び出す必要はありません。このリンクのコードは、あなたが行っているのと非常に似ています:http://blog.goltergaul.de/2010/03/android-game-project-basics-of-threads-and-canvas/ – ice911