如何获取开始动画的 View 对象......?
Posted
技术标签:
【中文标题】如何获取开始动画的 View 对象......?【英文标题】:How to get View object on which animation was started......? 【发布时间】:2011-11-26 00:25:54 【问题描述】:我有 3 个图像视图,我在其中开始了相同的动画(翻译)
我有动画监听器,在 onAnimationEnd(Animation animation) 方法中,
我想知道动画在哪个图像视图上结束..?
从动画对象我怎么知道它是从哪里开始的......?
提前谢谢..!
【问题讨论】:
尝试在 onAnimationEnd() 中保留一个标志 【参考方案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 我的评论实际上是不正确的。这个答案很好:)以上是关于如何获取开始动画的 View 对象......?的主要内容,如果未能解决你的问题,请参考以下文章