在oncreate方法中实现fireworks线程

时间:2017-09-07 21:07:58

标签: android multithreading fireworks

我正在尝试基于Lenoids的github代码完成烟花功能。我想创建两个烟花(一个白色和另一个红色),并在每两秒后连续显示它们。

这是我到目前为止所做的:

  1. 创建了两个按钮(每种颜色一个烟花)。按钮具有烟花功能。
  2. 在线程中以编程方式调用按钮以显示烟花。

         @Override
        protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_congratulations);
    
        new Thread(new Runnable() {
            @Override
            public void run() {
                while(true){
                    try {
                        Thread.sleep(100);
                        button10.callOnClick();  //for red fireworks 
                        button11.callOnClick();  //for white fireworks 
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
    
    
                }
            }
        }).start();
    }
    
  3. 问题在于,如果我增加睡眠方法的值,那么烟花就不会显示出来了。如何完成两秒连续烟花功能?

    这是烟花代码:

    new ParticleSystem(MyClass.this, 100, R.drawable.star_pink, 800) .setSpeedRange(0.1f, 0.25f) .oneShot(view, 70);
    

1 个答案:

答案 0 :(得分:0)

如果你想每两秒钟运行一次烟花,那么使用Handler而不是thread和thread.sleep。

final Handler ha=new Handler();
ha.postDelayed(new Runnable() {

@Override
public void run() {
   button10.callOnClick();   
   button11.callOnClick();
    ha.postDelayed(this, 2000);
 }
}, 2000);

希望有所帮助。