2017-09-07 52 views
0

我想完成基於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(); 
    } 
    

的問題是,如果我增加睡眠方法的價值,那麼,煙花不會出現在所有。我怎樣才能完成兩個連續的煙花爆竹功能?

這裏的煙花代碼:

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

你正在使用的煙花的煙花持續時間是多少? –

+0

new ParticleSystem(MyClass.this,100,R.drawable.star_pink,800) .setSpeedRange(0.1f,0.25f) .oneShot(view,70); 沒有持續時間。 – bangbang

+0

什麼價值的睡眠不顯示煙花? 800毫秒是你的煙花的持續時間。使用上面的線程。如果睡眠值大於或等於800,則不能顯示煙花。 –

回答

0

如果你想運行的煙花每兩秒鐘,然後用它代替線程和Thread.sleep代碼處理程序。

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

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

希望有所幫助。