2016-11-16 239 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

謝謝,這工作! –