Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android定制onAnimationEnd_Android_Android Animation - Fatal编程技术网

Android定制onAnimationEnd

Android定制onAnimationEnd,android,android-animation,Android,Android Animation,我只是想以一种更有效的方式使用我的动画代码。下面的代码完全按照我所希望的那样工作,但我不想在我将使用此特定淡出动画的几个活动中,将其复制并粘贴到30个位置的任何地方。我如何设置一个类来完成此操作主要问题是在onAnimationEnd中将视图设置为不可见。 final TextView ph = (TextView) findViewById(R.id.textPlaceholder); final Animation fadeOut = new AlphaAnimation(1

我只是想以一种更有效的方式使用我的动画代码。下面的代码完全按照我所希望的那样工作,但我不想在我将使用此特定淡出动画的几个活动中,将其复制并粘贴到30个位置的任何地方。我如何设置一个类来完成此操作主要问题是在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);
        }
    });

扩展
AlphaAnimation
类,在该类中您可以在构造函数中设置持续时间、偏移量和
AnimationListener

创建帮助器类:

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);

如何在构造函数中设置侦听器以修改动画影响的视图?谢谢!我没有意识到我可以很容易地以这种方式附加视图。