Tag: 安卓动画

TranslateAnimation无法按预期工作

我想使用TranslateAnimation移动一些线性布局。 我有2个问题。 我的基础SDK是Android 2.2。 即使动画完成,线性布局中的可触摸区域也根本没有移动。 动画结束后,屏幕闪烁几帧。 起初,我没有使用AnimationListener和LinearLayout.layout()。 当我使用以下代码完成动画时,视图的位置确实发生了变化。 但似乎在动画期间,可触摸区域没有与视图一起移动。 结果,当我试图在动画后点击视图上的任何按钮时,没有任何反应。 如果我单击按钮的原始区域(动画发生前的原始区域),则会触发on_click_listener。 然后我删除了这行代码, tmpAnimation.setFillAfter(true); 并尝试了AnimationListener和LinearLayout.layout() 。 它确实帮助并解决了第一个问题。 但是出现了2个问题。 在动画之后,我的一些线性布局会闪烁几帧然后又回到订单状态。 我已经尝试过midLinearlayout.requestLayout() ,它不起作用。我尝试实现了Animation.AnimationListener并覆盖onAnimationEnd,就像有人说的那样,但它也不起作用。 TranslateAnimation tmpAnimation = new TranslateAnimation(midLinearlayout.getLeft(),midLinearlayout.getLeft(),midLinearlayout.getTop(),midLinearlayout.getTop()+100); //tmpAnimation.setFillAfter(true); tmpAnimation.setDuration(2000); tmpAnimation.setAnimationListener(new Animation.AnimationListener() { @Override public void onAnimationStart(Animation animation) { //To change body of implemented methods use File | Settings | File Templates. } @Override public void onAnimationEnd(Animation animation) […]

暂停和恢复翻译动画

我正在使用Translate Animation来移动ImageView 。 我正在使用此代码: TranslateAnimation set1 = new TranslateAnimation(-4, 10, -110, 0); set1.setDuration(3000); TranslateAnimation set2 = new TranslateAnimation(10, -3, 0, 115); set2.setDuration(3000); set2.setStartOffset(2200); TranslateAnimation set3 = new TranslateAnimation(-3, -20, 0, -100); set3.setDuration(3000); set3.setStartOffset(4500); TranslateAnimation set4 = new TranslateAnimation(0, 13, 0, -120); set4.setDuration(3000); set4.setStartOffset(6500); animSet.addAnimation(set1); animSet.addAnimation(set2); animSet.addAnimation(set3); animSet.addAnimation(set4); animSet.setFillAfter(true); 创建一组动画后,我将它们应用于ImageView如下所示: image = (ImageView)findViewById(R.id.img); image.startAnimation(animSet); 一切都运行正常,但我无法暂停动画并按下按钮继续 。 […]