Android:动画 - 如何确定XML文件动画的结尾并在Java中启动Alphaanim



我有一个动画(xml)文件,该文件设置了图像视图以显示电影的信用:

<?xml version="1.0" encoding="utf-8"?>
<set
xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/linear_interpolator" >
<translate
    android:duration="10000"
    android:fromYDelta="100%p"
    android:toYDelta="0%p" />
</set>

如您所见,图像在全屏时停止"移动"。还行吧。我的问题是:当IV到达动画的末端时,我该如何设置一个文本视图(隐藏),因此文本可以通过图像?

Java代码:

    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_final);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
    mozart=(ImageView) findViewById(R.id.mozart);
      Picasso.with(this).load(R.drawable.amadeus).fit().centerCrop().into(mozart);
    read=(TextView) findViewById(R.id.read);
    restart=(Button) findViewById(R.id.restart);
    restart.setOnClickListener(this);
    Animation moz= AnimationUtils.loadAnimation(this, R.anim.animation);
    mozart.startAnimation(moz);
    read.setVisibility(View.INVISIBLE);
    read.setText("Text to appear with other alphaAnimation");
}

@Override
public void onClick(View view) {
    if (view == restart) {
        allaTurca.stop();
       Intent a = new Intent(this, MainActivity.class);
        startActivity(a);
        this.finish();
    }
  }
}

有可能吗?我尝试了几种侵犯,但是当图像准备"接收"文本时,我不知道如何告诉程序。thaks寻求帮助

用于动画开始重复和结束

您必须将动画侦听器添加到这样的动画

moz.setAnimationListener(new Animation.AnimationListener(){
@Override
public void onAnimationStart(Animation arg0) {
   //Do Something on start
}           
@Override
public void onAnimationRepeat(Animation arg0) {
}           
@Override
public void onAnimationEnd(Animation arg0) {
}
});

当动画开始时,它将首先通过onstart(这是您可以在这里初始化动画变量的地方)...

然后,如果您在动画中重复,请调用AnamimationRepeat。

动画完成后,将调用OnAnimationEnd。(这是您感兴趣的部分)

编辑正如评论中指出的那样...这样做的更好的方法是使用AnimatorListenerAdapter ....谢谢Marmor

AnimatorListenerAdapter onEnd = new AnimatorListenerAdapter() {
        @Override
        public void onAnimationEnd(Animator _a) {
            DropZone.this.setTranslationY(getHeight() + 2);
            DropZone.this.setAlpha(0f);
        }
    };

您可以在此处找到示例http://www.programcreek.com/java-api-examples/index.php?api = android.animation.animatorListenerAdapter

最新更新