Android定制onAnimationEnd
我只是想以一种更有效的方式使用我的动画代码。下面的代码完全按照我所希望的那样工作,但我不想在我将使用此特定淡出动画的几个活动中,将其复制并粘贴到30个位置的任何地方。我如何设置一个类来完成此操作主要问题是在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
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);
如何在构造函数中设置侦听器以修改动画影响的视图?谢谢!我没有意识到我可以很容易地以这种方式附加视图。