我有一个非常简单的动画:一个imageview必须一直向上然后向下。最初我尝试使用xml:
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false"
android:fillAfter="true">
<set
android:interpolator="@android:anim/linear_interpolator"
android:repeatCount="-1"
android:repeatMode="reverse">
<translate
android:fromYDelta="0"
android:toYDelta="10"
android:duration="300">
</translate>
</set>
Animation mAnimation= AnimationUtils.loadAnimation(this, R.anim.myanimation);
immagineNemico.startAnimation(mAnimation);
但它并没有奏效:我的imageview并没有上升,只是下降了。所以我读了一个问题的答案,我按代码做了动画:
immagineNemico.setVisibility(View.VISIBLE);
TranslateAnimation mAnimation = new TranslateAnimation(
TranslateAnimation.ABSOLUTE, 0f,
TranslateAnimation.ABSOLUTE, 0f,
TranslateAnimation.RELATIVE_TO_PARENT, 0f,
TranslateAnimation.RELATIVE_TO_PARENT, 0.02f);
mAnimation.setDuration(300);
mAnimation.setRepeatCount(-1);
mAnimation.setRepeatMode(Animation.REVERSE);
mAnimation.setInterpolator(new LinearInterpolator());
immagineNemico.setAnimation(mAnimation);
它有效。但为什么xml动画没有用?它们几乎一样!错误在哪里?
答案 0 :(得分:1)
我遇到了同样的问题:动画在按代码设置时有效,但在XML中却没有。简短的回答是Android动画中存在错误/故意混淆的设计,其中一些XML元素被忽略。
这个相关问题的答案首先让我觉得,当通过编程方式和通过XML完成时会有一些工作:https://stackoverflow.com/a/6351812/8003750
我知道这不是最令人满意的答案,但简而言之 - 即使XML是完美的,也有可能无法正常工作的情况。