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