2017-08-05 2 views
1

Ich habe Code geschrieben, der den Hintergrund alle 3 Sekunden ändern kann, aber leider ändert sich nur 1 Mal, ich versuche mit der Zählung, aber es wird nicht funktionieren, wo ist es schiefgelaufen?Wie kann ich das Hintergrundbild ohne Unterbrechung ändern?

public class MainActivity extends AppCompatActivity { 
public static int count=0; 
int images[] = new int[] {R.drawable.main, R.drawable.main2, R.drawable.main3, R.drawable.main4}; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

     new Handler().postDelayed(new Runnable() { 
      public void run() { 
       if (count < images.length) { 

        RelativeLayout background = (RelativeLayout) findViewById(R.id.activity_main); 
        Random rand = new Random(); 
        int index = rand.nextInt(images.length); 
        background.setBackgroundResource(images[index]); 
        count++; 
       } 
       else{ 
        count = 0; 
       } 
      } 
     }, 3000); 

} 
}; 
+0

Es könnte eine Möglichkeit sein, dass der Faden in Zeiten geringer wird getötet Ressourcen? –

Antwort

1

Rufen Sie einfach handler.postDelayed innerhalb run() Methode, um es wieder zu starten, und der Code wie folgt ändern:

public class MainActivity extends AppCompatActivity { 
     int images[] = new int[] {R.drawable.main, R.drawable.main2, R.drawable.main3, R.drawable.main4}; 
     final Handler animHandler = new Handler(); 


     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_main); 
      RelativeLayout background = (RelativeLayout) findViewById(R.id.activity_main); 

      animHandler.post(new Runnable() { 
       @Override 
       public void run() { 
        Random rand = new Random(); 
        int index = rand.nextInt(images.length); 
        background.setBackgroundResource(images[index]); 
        animHandler.postDelayed(this, 3000); 
       } 
      }); 
     } 
    }; 
} 
+0

Das funktioniert! Vielen Dank. :) –

Verwandte Themen