2

我有一个带有 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
4

0 回答 0