在Android中移动位图时的图像跟踪

时间:2011-03-30 20:28:53

标签: android graphics animation sprite

我正在尝试为Android编写一个小游戏,当我绘制位图并使用Sprites制作动画时,我可以在图像中看到一条线索! (这是一张PNG图片)。 我知道它不是精灵的问题,因为我使用了沿X轴移动的静态图像,我仍然可以看到踪迹

trail of the animation

这是我用来加载图片的代码:

bmp = BitmapFactory.decodeResource(getResources(), R.drawable.image);

我怎样才能消除它,所以我每次只能看到一个精灵?

非常感谢你!

3 个答案:

答案 0 :(得分:3)

看起来你需要在每次绘制精灵之前清除背景。在你的画布上调用drawColor应该这样做,比如

    Canvas c = null;
    try {
        c = surfaceHolder.lockCanvas(null);
        synchronized(surfaceHolder) {
            c.drawColor(Color.BLACK);
            c.draw(bmp, posX, posY, null);
        }
    } finally {
        if(c != null)
            surfaceHolder.unlockCanvasAndPost(c);
    }

答案 1 :(得分:1)

嗯,这是一个非常愚蠢的事情: 而不是

@Override
protected void onDraw(Canvas canvas) {
    canvas.drawColor(***Color.BLACK***);
    sprite.onDraw(canvas);
}

我做了

@Override
protected void onDraw(Canvas canvas) {
    canvas.drawColor(***color.black***);
    sprite.onDraw(canvas);
}

非常感谢答案,因为我真的不确定为什么要做所有这些,所以你们两个人实际上都帮了很多!

答案 2 :(得分:0)

您是在SurfaceView还是Canvas

中执行此操作

使用SurfaceView我相信您必须手动清除要消失的部分图形。