【问题标题】:How to get View object on which animation was started......?如何获取开始动画的 View 对象......?
【发布时间】:2011-11-26 00:25:54
【问题描述】:

我有 3 个图像视图,我在其中开始了相同的动画(翻译)

我有动画监听器,在 onAnimationEnd(Animation animation) 方法中,

我想知道动画在哪个图像视图上结束..?

从动画对象我怎么知道它是从哪里开始的......?

提前谢谢..!

【问题讨论】:

  • 尝试在 onAnimationEnd() 中保留一个标志

标签: android animation android-layout android-widget


【解决方案1】:

你无法知道动画结束的对象是什么。 AnimationListener 的全部目的是监听动画而不是对象。

解决方案


1- 创建您自己的 Animation 类并在其中保存对正在制作动画的对象的引用。

这将允许您在函数 onAnimationEnd 中将动画转换为 YourAnimation 并获取引用。


2- 一个更简单的解决方案是创建自己的 AnimationListener 来保存动画对象的引用。

例如:

public class MyAnimationListener implements AnimationListener {
    ImageView view;
    public void setImage(ImageView view) {
        this.view = view;
    }
    public void onAnimationEnd(Animation animation) {
        // Do whatever you want
    }
    public void onAnimationRepeat(Animation animation) {
    }
    public void onAnimationStart(Animation animation) {
    }
}

因此,当您想要为 ImageView 设置动画时:您可以执行以下操作:

MyAnimationListener listener = new MyAnimationListener();
listener.setImage(myImage);

myAnimation.setAnimationListener(listener);

【讨论】:

  • @W.K.S 嘿!能否请您多解释一下?:)
  • @Slava 我的评论实际上是不正确的。这个答案很好:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-06-04
  • 1970-01-01
  • 1970-01-01
  • 2018-04-05
  • 1970-01-01
  • 1970-01-01
  • 2014-10-07
相关资源
最近更新 更多