【问题标题】:Image trail when moving bitmap in Android在Android中移动位图时的图像轨迹
【发布时间】:2011-03-30 20:28:53
【问题描述】:

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

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

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

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

非常感谢您!

【问题讨论】:

    标签: android graphics animation sprite


    【解决方案1】:

    看起来您需要在每次绘制精灵之前清除背景。在你的 Canvas 上调用 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);
        }
    

    【讨论】:

      【解决方案2】:

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

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

      非常感谢两位的回答,因为我真的不知道为什么必须完成所有这些,所以你们俩实际上都帮了很多忙!

      【讨论】:

        【解决方案3】:

        您是在SurfaceView 还是Canvas 中执行此操作?

        对于SurfaceView,我相信您必须手动清除您想要消失的绘图部分。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-06-05
          • 1970-01-01
          • 2013-05-10
          • 2015-04-20
          相关资源
          最近更新 更多