1

我仍然对最基本的需求有问题。我想要 2 个按钮:一个运行补间动画,将图像移动 50 像素,另一个按钮在该图像上运行逐帧动画。

补间动画完成后,逐帧动画会在错误的位置运行。诡异的。我正在使用 FillAfter/FillEnabled,

运行补间动画的代码是一个基本的 TranslateAnimation(0, 50, 0 , 0),其后填充和 fillEnabled = true。

逐帧代码是 image.setImageDrawable(getResources().getDrawable(resourceId)); ((AnimationDrawable) image.getDrawable()).start();

帮助将不胜感激。

干杯

4

1 回答 1

2

我发现这样做的唯一方法是首先移动你的 imageview 位置,使用 setLayoutParams 和新的边距,然后你才使用 (-x, -y, 0, 0) 启动 TranslateAnimation 所以对于我在问题中的具体情况,这是我的代码:

TranslateAnimation tweenAnim = new TranslateAnimation(-1 * XStep, -1  * YStep , 0, 0);
tweenAnim.setDuration(number_of_steps * 750);
tweenAnim.setFillAfter(true);
tweenAnim.setFillEnabled(true);
tweenAnim.setInterpolator(new LinearInterpolator());

 //layout positioning
lp.leftMargin  += XStep;
lp.bottomMargin += YStep;
imageView.setLayoutParams(lp);

Log.v(TAG, "leftMargin=" + lp.leftMargin);
Log.v(TAG, "bottomMargin=" + lp.bottomMargin);

imageView.startAnimation(tweenAnim);

这是一个巨大的痛苦。严重地。感谢http://www.clingmarks.com/?p=400我能够克服它。

于 2011-05-24T17:19:41.677 回答