如何获取开始动画的 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 对象......?的主要内容,如果未能解决你的问题,请参考以下文章

Android 旋转动画简单实现

Android 旋转动画简单实现

Android 旋转动画简单实现

Android 旋转动画简单实现

获取View的截图-将View转换为Bitmap对象

动画以及View绘制中的addview实战