2017-02-01 1 views
0

Ich möchte den Hintergrund meiner App zufällig ändern. Es sollte ein zufälliges Bild von seinem eigenen Ordner als Hintergrund haben. Es funktioniert perfekt mit einigen Geräten, aber mit einigen von ihnen nicht. Ich frage mich, was diese Inkonsistenz verursachen könnte. Hier ist meine zufällige Hintergrundgenerator Klasse:Android - Benutzerdefiniertes Hintergrundbild

public class arkaplanGenerator { 
public static int arkaplan(){ 
    int sonucArkaplan = 0; 
    Random r = new Random(); 
    int sayi = r.nextInt(11); 
    switch (sayi){ 
     case 0: 
      sonucArkaplan = R.drawable.bavaria; 
      break; 
     case 1: 
      sonucArkaplan = R.drawable.gorges; 
      break; 
     case 2: 
      sonucArkaplan = R.drawable.more; 
      break; 
     case 3: 
      sonucArkaplan = R.drawable.mountains; 
      break; 
     case 4: 
      sonucArkaplan = R.drawable.pisa; 
      break; 
     case 5: 
      sonucArkaplan = R.drawable.sea; 
      break; 
     case 6: 
      sonucArkaplan = R.drawable.sunset; 
      break; 
     case 7: 
      sonucArkaplan = R.drawable.sunset2; 
      break; 
     case 8: 
      sonucArkaplan = R.drawable.wai; 
      break; 
     case 9: 
      sonucArkaplan = R.drawable.water; 
      break; 
     case 10: 
      sonucArkaplan = R.drawable.waterfall; 
      break; 
    } 
    return sonucArkaplan; 
} 

Und hier ist, wie ich benutze es in meiner Haupttätigkeit:

LinearLayout linearLayout = (LinearLayout)findViewById(R.id.activity_main); 
linearLayout.setBackground(getResources().getDrawable(arkaplanGenerator.arkaplan())); 

Diese Bilder sind in ziehbar folder.Thanks im Voraus.

+1

Es ist fast unmöglich, sie ohne Informationen zu helfen, auf welche Geräte Sie Problem haben und das ist genau Probleme, die Sie haben. – Divers

Antwort

0

Die Methode getDrawable aus der Klasse Resources ist veraltet. Sie sollten die man von ContextCompat verwenden: (Stack-Trace)

linearLayout.setBackground(ContextCompat.getDrawable(getApplicationContext(),arkaplanGenerator.arkaplan())); 
+0

Nein sicher, das war das Problem. Veraltet bedeutet nicht, nicht zu funktionieren. – AnixPasBesoin

Verwandte Themen