0

你如何在android中删除位图?我创建了一个名为“太阳”的位图,但一旦我完成一个人走过屏幕,我想添加一个名为“月亮”的新位图,但它只是在太阳上方创建的,我怎么能删除太阳位图?这是我的步行者代码。

    switch (counter)
    {

    case 0:
        skyRect.set(0, 0, canvas.getWidth(), 400);
        canvas.drawRect(skyRect, sky);
        canvas.drawBitmap(AndroidDude, changingX, (canvas.getHeight()/2 - (AndroidDude.getHeight()/2)), null);
        if (changingX < canvas.getWidth())
        {
            changingX += 10;
        }
        else 
        {
            changingX = 0;
            sunChangingX = 0;
            counter++;
        }

        grassRect.set(0, 400, canvas.getWidth(), canvas.getHeight());
        canvas.drawRect(grassRect, grass);
        canvas.drawBitmap(cloud, 100, 50, null);
        canvas.drawBitmap(cloud, 700, 100, null);
        canvas.drawBitmap(sun, (canvas.getWidth() - sun.getWidth()), 0, null);
        invalidate();
        break;

    case 1:
        //Remove sun and clouds here?
        canvas.drawBitmap(moon, (canvas.getWidth() - moon.getWidth()), 0, null);
        canvas.drawBitmap(AndroidDude, changingX, (canvas.getHeight()/2 - (AndroidDude.getHeight()/2)), null);
        if (changingX < canvas.getWidth())
        {
            changingX += 10;
        }
        else 
        {
            changingX = 0;
            counter++;
        }
        grassRect.set(0, 400, canvas.getWidth(), canvas.getHeight());
        canvas.drawRect(grassRect, grass);
        canvas.drawBitmap(cloud, 100, 50, null);
        canvas.drawBitmap(cloud, 700, 100, null);
        canvas.drawBitmap(sun, sunChangingX, 0, null);
        invalidate();
        break;
    }
4

3 回答 3

1

在要删除的位图上重新绘制背景(天空和草)。做一个刷新功能。

于 2012-05-05T14:28:58.640 回答
0

你只是在旧的东西上画新的东西。如果您需要“擦除”某些内容,只需重新绘制背景即可。

于 2012-05-05T14:29:56.327 回答
0
Canvas.drawColor(Color.WHITE);

或者

您可能必须清洁画布,以便可以使用白色绘制矩形。

// 或任何你的画布颜色

它看起来像画布是空白的。

并再次画出你想要的。

您的输出将以白色显示。

于 2012-05-05T14:33:26.877 回答