在位图 Android 上绘制新圆圈

问题描述 投票:0回答:1

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

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

这是我最近的测试。为什么圆圈现在会移动?它根本不动。

android geometry draw new-operator
1个回答
3
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.