一次在所有View上触发AnimationEnd

时间:2013-05-18 19:25:33

标签: android android-animation

我有一个带有3个图像按钮的应用程序(基于自定义图像按钮)此图像按钮有一个动画结束侦听,一旦第一个图像按钮完成动画,此自定义图像按钮的所有实例都会触发AnimationEnd方法。

这是我的代码:

import java.util.concurrent.Callable;

import android.content.Context;
import android.util.AttributeSet;
import android.widget.ImageButton;

class MyImageButton extends ImageButton{

    protected Callable<Void> AnimEnd = null;
    public void setOnAnimationEndListener(Callable<Void> AnimEnd1) {
        this.AnimEnd = AnimEnd1;
    }


    public MyImageButton(Context context) {
        super(context);
        // TODO Auto-generated constructor stub
    }

    public MyImageButton(Context context, AttributeSet attrs) {
        super(context, attrs);
        // TODO Auto-generated constructor stub
    }

    public MyImageButton(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        // TODO Auto-generated constructor stub
    }

    @Override
    protected void onAnimationEnd() {
        super.onAnimationEnd();
        //Functionality here
        if(this.AnimEnd != null){
            try{
                this.AnimEnd.call();
            }
            catch(Exception e){

            }
        }
    }

}

请注意3个图像按钮的动画效果,偏移距离为2秒(2000毫秒)。

我为图片按钮设置了一个回调,如下所示:

object1.setOnAnimationEndListener(new Callable<Void>() {

            @Override
            public Void call() throws Exception {

                object1.setAnimation(null);
                object1.setLayoutParams(params);

                // TODO Auto-generated method stub
                return null;
            }
        });

// Similarly object2, object3 all of them are instances of MyImageButton

0 个答案:

没有答案