2016-11-16 127 views
0

在我的程序中,图像是垂直动画。我想让动画停留在右边缘。我认为第二个if-sequence中的条件应该这样说,但是我该如何停止invalidate()方法在该点上进行动画制作?android - 停止动画

private Runnable r = new Runnable() { 
     @Override 
     public void run() { 
      invalidate(); 
     } 
    }; 

    protected void onDraw(Canvas c) { 

     BitmapDrawable ball = (BitmapDrawable) mContext.getResources().getDrawable(R.drawable.ball); 
     if (x<0) { 
      x = this.getWidth()/2; 
      y = this.getHeight()/3; 
     } 

      else { 
       x += xVelocity; 

        if ((x > this.getWidth() - ball.getBitmap().getWidth()) || (x < 0)) { 





        } 
      } 

     c.drawBitmap(ball.getBitmap(), x, y, null); 

     h.postDelayed(r, FRAME_RATE); 


    } 
} 
+0

你的问题还不清楚。 –

+0

以何种方式不清楚? –

回答

0

仅当您想要继续动画时才使用h.postDelayed(r, FRAME_RATE);。实现这一

一种方法是用你设置为根据动画项目的位置,这一个布尔值(我们称之为continueAnimation)。然后你可以写

c.drawBitmap(ball.getBitmap(), x, y, null); 
if (continueAnimation) 
    { 
     h.postDelayed(r, FRAME_RATE); 
    } 
+0

谢谢,这工作! –