使用Java中的闭包进行倒计时

时间:2011-03-23 16:11:45

标签: java android canvas closures

我正在为Android编写一个应用程序。该应用程序有许多图形围绕画布移动。如果两个见面他们“爆炸”。简而言之,我有一对很好的爆炸图形,但爆炸的本质是它只能持续分裂,或者更长一点,我需要编程爆炸图形以显示在屏幕上然后就消失了。我有一些笨拙的代码来实现它。

  public void flickerExplosion(){

                flickercounter++;
                if(flickercounter ==100){

                    flickercounter = 0;
                                    explode_graphic.deleteGraphic();
                            }

                if(flickercounter%10>4){

                        explode_graphic.setBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.exp1));

                    }

                    else{explode_graphic.setBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.exp2));}

            }

在代码中,explode_graphic是一个用于保存位图的类,该位图由onDraw()在画布上绘制。增加100次后,爆炸图形消失。爆炸在两个位图exp1,exp2之间闪烁。 代码工作正常。我意识到我可以使用timer()或其他类增量。但我的问题是关于琐碎的感觉我正在用flickercounter浪费资源,这是一个类int变量。 为了迭代这样的事情,是否可以使用anon内部函数(即闭包)?如果是这样会使类变量flickercounter过时并使我的程序更有效率? 我问这是一个星期前才开始学习关闭的人。

2 个答案:

答案 0 :(得分:0)

一个。 Java无法执行匿名功能。

B中。 Premature Optimization is the root of all Evil

不要假设某些东西表现非常糟糕,请测试它!

答案 1 :(得分:0)

有许多项目提供此类功能。阅读本文以获取一些背景知识,并参考主要竞争者: http://www.javaworld.com/javaworld/jw-06-2008/jw-06-closures.html