画布状态保存Android

画布状态保存Android,android,canvas,Android,Canvas,在我的android代码中,onDraw方法在5毫秒后被反复调用。我想重画的图像,并希望在一个位置上的一个图像静态。但问题是,当再次调用OnDraw时,它会重新绘制两幅图像。我希望它只重绘一幅图像,而不是第二幅。这是我的方法 protected void onDraw(Canvas canvas) { canvas.drawBitmap(mVolleyBall, cx, cy, null); // Image to be redrawn canvas.d

在我的android代码中,onDraw方法在5毫秒后被反复调用。我想重画的图像,并希望在一个位置上的一个图像静态。但问题是,当再次调用OnDraw时,它会重新绘制两幅图像。我希望它只重绘一幅图像,而不是第二幅。这是我的方法

protected void onDraw(Canvas canvas) {
        canvas.drawBitmap(mVolleyBall, cx, cy, null); // Image to be redrawn

            canvas.drawBitmap(red,x, y, null); //  Static image
}

我的建议是,创建一个布尔变量,只允许它发生一次。像这样:

`protected void onDraw(Canvas canvas) {
     canvas.drawBitmap(mVolleyBall, cx, cy, null); // Image to be redrawn
        if(!once){
        canvas.drawBitmap(red,x, y, null); //  Static image
        once = true        
        }
}`

当变量在初始化过程中被声明为false时。

当调用OnDraw时,它将绘制该方法中定义的内容。 因此,您需要在两个图像中定义坐标,它们需要放置在何处。
根据您的要求,一个图像的坐标需要固定,其他图像将使用新的x,y进行更新。

下次调用onDraw时,它将删除以前的图像,即静态图像,并且仅绘制新图像。如果您希望仅绘制一次图像,您可能希望查看应用程序的碎片。我对它没有太多经验,但它可能会解决您的问题:OnDraw()方法将在每次调用中重新绘制内容,因此使用if(!once)将仅用一个图像刷新视图。