2016-05-11 6 views
-2

私はこれらの画像を複数の時間にわたって回転させようとしています。私が知る限り、ループを使用する必要があります。しかし、それをテストするとき、それは10回ではなく、1回のループスルーでのみ機能します。私は間違って何をしていますか?また、私は初心者ですので、私はそれを簡単に取る。Androidスタジオ: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++; 
    } 
関連する問題