gridview中按钮的android帧动画

gridview中按钮的android帧动画,android,animation,gridview,button,resources,Android,Animation,Gridview,Button,Resources,我为android制作了一个点击数字游戏作为测试项目,为此我制作了一个gridview,里面有大约20个按钮。当按下其中一个按钮时,动画开始。这在最初几次运行正常,但随后会变慢并开始口吃 我假设它与动画资源有关,因为我在同一时间多次使用它,但我不知道如何解决这个问题。 因为我想在动画结束时从gridview中删除按钮,所以我包装了AnimationDrawable类,以便能够设置在动画结束时调用的处理程序 public void animate() { setBackgroun

我为android制作了一个点击数字游戏作为测试项目,为此我制作了一个gridview,里面有大约20个按钮。当按下其中一个按钮时,动画开始。这在最初几次运行正常,但随后会变慢并开始口吃

我假设它与动画资源有关,因为我在同一时间多次使用它,但我不知道如何解决这个问题。 因为我想在动画结束时从gridview中删除按钮,所以我包装了AnimationDrawable类,以便能够设置在动画结束时调用的处理程序

public void animate() {     
    setBackgroundResource(R.drawable.myanimation);
    final AnimationDrawable anim = (AnimationDrawable) getBackground(); 
    final BetterAnimationDrawable better = new BetterAnimationDrawable(anim);
    better.setEndHandler(new EndHandler());
    better.start();     
}
提前谢谢

更新:
@沃普兹特:谢谢你的回答。它不是earch click的处理程序,而是每个按钮的处理程序。onclick方法禁用按钮(因此只能按下一次),然后调用animate()。实际上,我可以发布的代码不多了,gridview适配器getView如下所示:

    @Override
    public View getView(final int position, final View convertView, final ViewGroup parent) {           
        final MySpecialButton sb = new MySpecialButton(getApplicationContext());
        sb.setOnClickListener(new SpecialButtonClickListener());
        return nv;              
    }
上面提到的处理程序看起来是这样的(实际上并没有删除按钮,而是更改了背景绘图,对此表示抱歉):


是否为每次单击创建一个新的处理程序?那一定很痛。。。让每个按钮只对应一个按钮,或者其他更智能的按钮(需要查看更多的代码来提供其他建议)

private class MySpecialHandler extends Handler {

    public MySpecialHandler() {
    }

    @Override
    public void handleMessage(final Message msg) {
        super.handleMessage(msg);

        final Bitmap bitmapMask = BitmapFactory.decodeResource(getResources(), R.drawable.aspecialmask);
        final BitmapDrawable d = new BitmapDrawable(bitmapMask);            
        d.setColorFilter([someColor], Mode.MULTIPLY);           
        setBackgroundDrawable(d);                                           
    }       

};