【发布时间】:2012-03-31 04:07:15
【问题描述】:
要求:
我需要一个一个地运行多个动画。我正在使用 onAnimationEnd() 这样做。
在制作动画时,如果发生触摸事件,我需要停止动画并在该位置显示新图像。
问题:
我在 onTouch 的情况下使用 clearAnimation()。因此,完整的动画被删除了。我的意图是停止动画并在触摸部分显示新图像。我怎样才能做到这一点?
由于 clearAnimation(),onAnimationEnd() 被多次调用,我在一个接一个地运行动画时遇到问题。
是否有任何功能只是停止动画而不是完全清除它?我使用的是 Android 2.1。
@Override
public boolean onTouch(View v, MotionEvent event) {
switch(event.getAction()) {
case MotionEvent.ACTION_UP:
imageArray[g_animCount - 1].clearAnimation();
break;
default:
break;
}
return true; // indicate event was handled
}
@Override
public void onAnimationEnd(Animation animation) {
layout.removeView(imageArray[g_animCount - 1]);
if ( (g_animCount < count))
{
startNextAnimation();
}
else
{
g_animCount = 0;
isBegin = false;
}
}
public void startNextAnimation()
{
int j = random.nextInt(200);
layoutParams.setMargins(j, -20, 30, 0);
layout.addView(imageArray[g_animCount], layoutParams);
imageArray[g_animCount].startAnimation(movArray[g_animCount]);
g_animCount++;
}
【问题讨论】:
标签: android animation imageview