0

我想在画布上画一个圆圈并让它留下痕迹,而不是每次都画一个新的圆圈。我该怎么做呢?我所能做的就是移动圆圈。

-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

1 回答 1

4

您是否在 doDraw 方法的开头执行类似 canvas.drawColor(Color.TRANSPARENT) 或 canvas.drawColor(Color.BLACK) 的操作?

如果您省略该调用,它不应该清除画布并留下您正在寻找的踪迹。

于 2012-03-21T01:51:53.283 回答