2016-05-11 37 views
-2

我只是想讓這些圖像旋轉多個持續時間,據我所知,我需要使用一個循環。但是在測試它時,它只能用於循環的一次運行,而不是十次。我究竟做錯了什麼?另外我是初學者,所以對我來說很簡單。Android Studio:爲什麼在onClick期間不會循環工作?

import android.support.v7.app.AppCompatActivity; 
    import android.os.Bundle; 
    import android.view.View; 
    import android.widget.ImageView; 

    public class MainActivity extends AppCompatActivity { 

     public void move (View view){ 
      ImageView thing1 = (ImageView) findViewById(R.id.thing1); 
      ImageView thing2 = (ImageView) findViewById(R.id.thing2); 
      int i =0; 
      while (i<10) { 
       thing1.animate().rotationBy(-45); 
       thing2.animate().rotationBy(45); 
       i++; 
      //Why does it stop here?  
      } 

     } 

     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_main); 
     } 
    } 
+2

你調試與都說斷點或登錄語句來看看它實際上做的呢? – codeMagic

+0

好的,我會繼續努力的。 –

+0

如果您從UI線程調用move(),您可能只會看到所有旋轉的最終結果。 –

回答

0

找到了一種解決方案,認爲我會分享它。公共類MainActivity擴展AppCompatActivity {

int i = 0; 
int n = 0; 


public void move (View view){ 
    ImageView rightLeg = (ImageView) findViewById(R.id.rightLeg); 


    if(n==0) { 

      rightLeg.animate().rotationBy(45).setDuration(500).setStartDelay(0); 


      n=4; 
     } 

     if(n==1){ 

      n=3; 

     } 
     if(n==2) { 

       rightLeg.animate().rotationBy(-90).setDuration(500).setStartDelay(0).translationXBy(30); 


       n=1; 
    } 

     if(n==3){ 

      rightLeg.animate().rotationBy(90).setDuration(500).setStartDelay(0).translationXBy(30); 

      n=2; 
      i=0; 

     } 
     if(n==4){ 
      n=2; 
     } 

     i++; 
    } 
相關問題