2012-03-21 7 views
0

キャンバスに円を描き、そのたびに新しいサークルを描きたいと思います。これをどうやってやりますか?私がすることができるのは、サークルを周りに移動することだけです。ビットマップAndroidで新しいサークルを描く

-CanvasTestクラス

package canvas.test; 

import android.app.Activity; 
import android.os.Bundle; 

public class CanvastestActivity extends Activity { 
/** Called when the activity is first created. */ 
float x = 80; 
float y = 20; 
float r = 15; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    Draw2D d = new Draw2D(this, x, y, r); 
    try { 
     Thread.sleep(100); 
     x++; 
     y++; 
    } catch(InterruptedException e) {} 
    setContentView(d); 
} 

}

--Draw2Dクラス

package canvas.test; 

import android.content.Context; 
import android.graphics.Canvas; 
import android.graphics.Color; 
import android.graphics.Paint; 
import android.view.View; 

public class Draw2D extends View { 

float x; 
float y; 
float r; 

public Draw2D(Context context, float x, float y, float r) { 
    super(context); 

    this.x = x; 
    this.y = y; 
    this.r = r; 
} 

@Override 
protected void onDraw(Canvas c) { 
    super.onDraw(c); 

    Paint paint = new Paint(); 
    paint.setStyle(Paint.Style.FILL); 

    paint.setColor(Color.WHITE); 
    c.drawPaint(paint); 

    paint.setAntiAlias(true); 
    paint.setColor(Color.BLUE);  
    c.drawCircle(x, y, r, paint); 
} 
} 

これは私の最も最近のテストです。なぜ今サークルは動くのだろうか?それはまったく動かない。

答えて

4

doDrawメソッドの初めに、canvas.drawColor(Color.TRANSPARENT)やcanvas.drawColor(Color.BLACK)のようなことをしていますか?

この呼び出しを省略すると、キャンバスをクリアして、探しているトレールを残してはいけません。

+0

私はそれを使用していません。私がやっているのは、キャンバスに空の白いビットマップを描画して、そこに円を描こうとしています。 – linuxer

+0

私はonDrawで図面をやっていますが、別の場所に描画する必要がありますか? – linuxer

+1

いくつかのサンプルコードを投稿した方が少し見やすくなりますが、描画するたびに白いビットマップを描画していればサークルが消去されます。サークルのすべての場所を保存し、すべてのリクエストをすべて描画するか、背景を最初にペイントしてからペイントするたびに新しい円の場所をペイントする必要があります。 – broschb

関連する問題