Android自定义onAnimationEnd

时间:2014-04-24 21:39:34

标签: android android-animation

我只是想以更有效的方式使用这个有效的动画代码。下面的代码完全按照我的要求工作,但是我不希望在我将使用这个特定的淡出动画的几个活动中的三十个地方复制并粘贴它。如何设置课程来执行此操作? 主要问题是在onAnimationEnd中将视图设置为不可见。

    final TextView ph = (TextView) findViewById(R.id.textPlaceholder);
    final Animation fadeOut = new AlphaAnimation(1.0f, 0.0f);
    fadeOut.setStartOffset(1000);
    fadeOut.setDuration(500);

    fadeOut.setAnimationListener(new AnimationListener() {

        @Override
        public void onAnimationEnd(Animation animation) {
            ph.setVisibility(View.INVISIBLE);
        }

        @Override
        public void onAnimationRepeat(Animation animation) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onAnimationStart(Animation animation) {
            // TODO Auto-generated method stub

        }
    });

    ph.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            ph.startAnimation(fadeOut);
        }
    });

2 个答案:

答案 0 :(得分:0)

扩展您在构造函数中设置持续时间,偏移量和AlphaAnimation的{​​{1}}类。

答案 1 :(得分:0)

创建一个帮助类:

Class ClickToFadeOutAnimation

  private View view; 

  public static void attachTo(View view) {
    new FadeOutAnimation(View view);
  }

  public FadeOutAnimation(View view) {
    this.view  = view;
    view.setOnCLickListsner(new OnClickListener() {
      animate();
    )
  }

  public void animate() {
    Animation fadeOut = ...
    .. rest of your animation code
  } 

}

使用它:

TextView ph = (TextView) findViewById(R.id.textPlaceholder);
ClickToFadeOutAnimation.attachTo(ph);