Random background colors

  • 7 Antworten
  • Neuester Beitrag
Diskutiere Random background colors im Android App Entwicklung im Bereich Betriebssysteme & Apps.
E

endkore

Neues Mitglied
Guten Tag liebe Community,

ich bin noch nicht lange mit dem Android Zeugs vertraut und versuche gerade einen Background zu erstellen, der random die Farbe wechselt sobald die App aufgerufen wird.

Code:
View a = findViewById(R.id.backstart);        
Paint p = new Paint();              
Random color = new Random();
Ich habe erstmal einige Variablen erstellt um danach folgendes auszuführen:

Code:
a.setBackgroundColor(Color.argb(255, color.nextInt(255), color.nextInt(255), color.nextInt(255)));
Nur stürzt die App immer ab, sobald ich sie versuche zu öffnen, woran könnte es liegen?

Mit freundlichen Grüßen, kev.
 
ui_3k1

ui_3k1

Gesperrt
Hey, so auf den ersten Blick sieht dein Code bei dem random color ziemlich zusammengewürfelt aus... Was sagt denn logcat? Die Fehlermeldungen dort sind definitiv eine große Hilfe.
Vielleicht noch als kleiner Tipp: bevor du irgendwas mit Zufallsgenerator erstellen willst, solltest du vielleicht zu erst mal testen ob du eine bestimmte Farbe hinbekommst. Nach dem Prinzip "ein erwartetes (eindeutiges) Ergebnis erzielen"... Ein Zufallsgenerator kann auch Fehler hervorragend Fehler produziert...
Btw: Auf stackoverflow gibt es zu deiner Frage wahrscheinlich 100 Lösungen (eher mehr)
zB:
http://stackoverflow.com/questions/20560899/generate-a-random-color-java
Oder das ist vielleicht besser:
http://stackoverflow.com/questions/...d-color-of-activity-to-white-programmatically

Beste grüße
 
Zuletzt bearbeitet:
E

endkore

Neues Mitglied
Hey,

eine bestimmte Farbe scheint auch nicht zu funktionieren und Logcat sagt folgendes:
Code:
06-19 16:26:47.094: E/AndroidRuntime(19155): FATAL EXCEPTION: main
06-19 16:26:47.094: E/AndroidRuntime(19155): Process: com.firstproject.mumbles, PID: 19155
06-19 16:26:47.094: E/AndroidRuntime(19155): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.firstproject.mumbles/com.firstproject.mumbles.GameStart}: java.lang.NullPointerException
06-19 16:26:47.094: E/AndroidRuntime(19155): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2209)
06-19 16:26:47.094: E/AndroidRuntime(19155): 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2269)
06-19 16:26:47.094: E/AndroidRuntime(19155): 	at android.app.ActivityThread.access$800(ActivityThread.java:139)
06-19 16:26:47.094: E/AndroidRuntime(19155): 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1210)
06-19 16:26:47.094: E/AndroidRuntime(19155): 	at android.os.Handler.dispatchMessage(Handler.java:102)
06-19 16:26:47.094: E/AndroidRuntime(19155): 	at android.os.Looper.loop(Looper.java:136)
06-19 16:26:47.094: E/AndroidRuntime(19155): 	at android.app.ActivityThread.main(ActivityThread.java:5102)
06-19 16:26:47.094: E/AndroidRuntime(19155): 	at java.lang.reflect.Method.invokeNative(Native Method)
06-19 16:26:47.094: E/AndroidRuntime(19155): 	at java.lang.reflect.Method.invoke(Method.java:515)
06-19 16:26:47.094: E/AndroidRuntime(19155): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
06-19 16:26:47.094: E/AndroidRuntime(19155): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
06-19 16:26:47.094: E/AndroidRuntime(19155): 	at dalvik.system.NativeStart.main(Native Method)
06-19 16:26:47.094: E/AndroidRuntime(19155): Caused by: java.lang.NullPointerException
06-19 16:26:47.094: E/AndroidRuntime(19155): 	at com.firstproject.mumbles.GameStart.onCreate(GameStart.java:57)
06-19 16:26:47.094: E/AndroidRuntime(19155): 	at android.app.Activity.performCreate(Activity.java:5248)
06-19 16:26:47.094: E/AndroidRuntime(19155): 	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1110)
06-19 16:26:47.094: E/AndroidRuntime(19155): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2173)
06-19 16:26:47.094: E/AndroidRuntime(19155): 	... 11 more
Auf stackoverflow hab ich mir vorher einiges angeguckt aber nichts hat geklappt, ich weiß nicht was ich falsch mache. Ich werde mir auch erstmal deine Links nochmal anschauen, kann sogar sein dass ich diese schon abgeklappert hab :laugh:

Hab jetzt schonmal nen weißen background erstellt, ich danke dir für die Links, hoffentlich klappts mit den random colors :laugh:
 
Zuletzt bearbeitet:
markus.tullius

markus.tullius

Experte
Du hast ein NullPointerException in der Klasse GameStart Zeile 57. Es wurde ein Objekt nicht instanziiert.

NullPointerException (Java Platform SE 6)

Ich vermute der View a ist null, weil die Methode findViewById() die Ressource im xml des Layout nicht gefunden hat.
 
ui_3k1

ui_3k1

Gesperrt
+1
ein nullpointer kann schon mal vorkommen
(soll Menschen geben, bei denen spielt die IDE ab und zu mal verrückt, da kommen und gehen die IDs wie sie gerade munter sind - in solchen Fällen hilft es ggf auch mal die R.java zu löschen und das Projekt neu zu builden - wird jetzt aber wohl nicht nötig sein - nur für den Fall der Fälle, wenn richtig Land unter ist)
 
E

endkore

Neues Mitglied
Ok dann weiß ich schonmal woran es liegt, jetzt habe ich den Fehler zwar behoben aber er zeigt immernoch einen Nullpointer an, obwohl die id (In dem fall 'backstart') existiert. Ist die id des Layouts richtig gewählt? Im Developer Guide beim Thema "View" habe ich nichts gefunden was mir weiterhelfen könnte.

Code:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id ="@+id/backstart"
Ich danke euch jetzt schon für eure Hilfe :biggrin:
 
Flextrick

Flextrick

App-Anbieter (unklar)
Naja, du kannst kein View mit einem RelativeLayout deklarieren.

RelativeLayout a = (RelativeLayout)findViewbyId(R.id.backstart);
 
E

endkore

Neues Mitglied
Jetzt wird mir einiges klar, es funktioniert jetzt auch wunderbar, ich danke euch für eure Hilfe :rolleyes2: