繁体   English   中英

clearAnimation()-如何使动画保持在最终位置?

[英]clearAnimation() - How to have animation stay in final position?

在这种情况下,我有一个从左到右在屏幕上移动的位图和一个按钮,按下该按钮将调用clearAnimation()

当按下此按钮时,它将在行驶的位图上调用clearAnimation() ,但位图将停留在屏幕上的位置(左右之间的某个位置)。

我实际上想发生的是,当按下按钮时,位图最终在动画点(屏幕右侧)的结尾处结束

知道如何实现这一目标吗? 下面是我的动画代码

questionAnimation = AnimationUtils.loadAnimation(QuestionActivity.this, R.anim.left_to_right);
questionWrapper.setBackgroundDrawable(getResources().getDrawable(R.drawable.imageview_rounded));
questionWrapper.startAnimation(questionAnimation);

我认为您的动画发生了什么,默认情况下它的setFillAfter()设置为true,或者您已经通过Java或xml从应用动画之前将其设置为true,所以首先您应该将setFillAfter设置为false或直接更改setFillEnabled为false,就像这里在xml中将set应用于

<set xmlns:android="http://schemas.android.com/apk/res/android"
android:fillAfter="false" >

<translate
    android:duration="300"
    android:fromYDelta="100%p"
    android:toYDelta="0" />

<alpha
    android:duration="300"
    android:fromAlpha="0.0"
    android:toAlpha="1.0" />

</set>

要么

<set xmlns:android="http://schemas.android.com/apk/res/android"
android:fillEnabled="false" >

<translate
    android:duration="300"
    android:fromYDelta="100%p"
    android:toYDelta="0" />

<alpha
    android:duration="300"
    android:fromAlpha="0.0"
    android:toAlpha="1.0" />

</set>

因此,在这种情况下,当动画结束或清除时,它不会保留视图图像(将图像悬浮在中间),因此,第二步,当您清除动画或动画结束时,必须通过代码在图像的右侧设置新位置自然起来,您必须将实际视图(ImageView)放到新的位置(由于这是以前由FillAfter处理的,但是由于在按下清除动画时暂停视图的功能失败,您需要将其删除,所以现在您必须覆盖通过自己设置ImageView的属性(例如它位于RelativeLayout中),然后将AlignParentRight的属性设置为true来实现其功能)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM