Random background colors

E

endkore

Neues Mitglied
2
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.
 
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:
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:
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.
 
+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)
 
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:
 
Naja, du kannst kein View mit einem RelativeLayout deklarieren.

RelativeLayout a = (RelativeLayout)findViewbyId(R.id.backstart);
 
Jetzt wird mir einiges klar, es funktioniert jetzt auch wunderbar, ich danke euch für eure Hilfe :rolleyes2:
 

Ähnliche Themen

A
Antworten
2
Aufrufe
1.138
AndrejT
A
A
Antworten
0
Aufrufe
704
AndrejT
A
S
Antworten
5
Aufrufe
1.000
swa00
swa00
Zurück
Oben Unten