Нарисуйте новый круг на растровом Android - PullRequest
0 голосов
/ 21 марта 2012

Я хочу нарисовать круг на холсте, чтобы он оставил след, лучше каждый раз рисовать новый круг. Как бы я поступил так? Все, что я могу сделать, это переместить круг.

-CanvasTest Class

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 Class

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);
}
}

Это мой самый последний тест. Почему круг теперь двигается? Он вообще не двигается.

1 Ответ

4 голосов
/ 21 марта 2012

Вы делаете что-то вроде canvas.drawColor (Color.TRANSPARENT) или canvas.drawColor (Color.BLACK) в начале вашего метода doDraw?

Если вы опустите этот вызов, он не должен очищать холсти оставьте следы, которые вы ищете.

...