android - 停止动画
问题描述:
在我的程序中,图像是垂直动画。我想让动画停留在右边缘。我认为第二个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);
}
}
答
仅当您想要继续动画时才使用h.postDelayed(r, FRAME_RATE);
。实现这一
一种方法是用你设置为根据动画项目的位置,这一个布尔值(我们称之为continueAnimation
)。然后你可以写
c.drawBitmap(ball.getBitmap(), x, y, null);
if (continueAnimation)
{
h.postDelayed(r, FRAME_RATE);
}
+0
谢谢,这工作! –
你的问题还不清楚。 –
以何种方式不清楚? –