Brauche Hilfe beim Programmieren: eine Codezeile in eine Zeitschleife Setzen (evntl. Handler), und direkter Zugriff auf Displayeinstellungen.

  • Antworten:9
  • Bentwortet
Sam Browder
  • Forum-Beiträge: 236

09.10.2013, 10:13:02 via Website

Hallo!
Ich habe zwei Fragen.

1. Ich möchte gerne bei einem ColorPicker eine RealTime Vorschau ermöglichen. Dafür muss die folgende Codezeile
1FarbAnzeige.setBackgroundColor(Color.rgb(wert_r, wert_g, wert_b));
in eine (Zeit)Schleife (ca. 200 ms müssen reichen) gesetzt werden. Ich habe schon über einen Tag mit dem Handler herumexperimentiert, klappt aber nicht. Also entweder gibt es doch eine Lösung mit dem Handler, auf welche ich nicht gekommen bin, oder aber es gibt eine andere Lösung... Da es direkt am Anfang einer Activity ausgeführt werden muss, müsste die Lösung (nach Möglichkeit) "void" sein (nicht "boolean").

2. Das zweite Problem ist, dass in einer Activity die Displayhelligkeit automatisch direkt auf maximum gesetzt werden muss (und wenn man die Activity beendet, nach Möglichkeit, wieder auf den alten Stand - ist aber kein muss). Ich habe schon mit dem Intent
1Intent intent = new Intent(Settings.ACTION_DISPLAY_SETTINGS);
2 startActivity(intent);
versucht, aber da kommt man nur in die Displayeinstellungen des Geräts und muss alles manuell machen. In der App ist das aber nicht der Sinn der Sache. Bestimmt gibt es da eine Möglichkeit, aber ich kenne Sie einfach nicht :grin: . Deswegen wäre ich für jede Hilfe Dankbar!

Danke im Voraus!
Sam.

Antworten
Sam Browder
  • Forum-Beiträge: 236

09.10.2013, 14:44:18 via Website

P. S. die zweite Frage hat sich erledigt - habe es selbst herausgefunden... Bleibt nur die Frage mit der Schleife :(

Antworten
impjor
  • Forum-Beiträge: 1.793

09.10.2013, 16:26:11 via App

Verstehe nicht, was das mit der Schleife bringen soll?
Wenn eine Farbe, ausgesucht wird, einfach setBackground() aufrufen.

LG

Liebe Grüße impjor.

Für ein gutes Miteinander: Unsere Regeln
Apps für jeden Einsatzzweck
Stellt eure App vor!

Antworten
Sam Browder
  • Forum-Beiträge: 236

09.10.2013, 16:35:17 via Website

Ja, so habe ich es jetzt - sieht aber nicht gut aus.
Ich habe ein Vorschaufeld erstellt, und mein Gedanke ist, dass wenn man mit dem Finger über den Color Picker geht, im Vorschaufeld, quasi in Real Time, der jetzige Farbton angezeigt wird - so kann man viel genauer auswählen. Dafür wäre meiner Meinung nach eine Schleife, welche dieses "Real Time Anzeigen" ermöglicht, von großem Vorteil.

Antworten
impjor
  • Forum-Beiträge: 1.793

09.10.2013, 20:36:50 via App

Eventuell gibts da ja einen Listener a lá onColorChanged oder so ähnlich. Oder du baust dir ein eigenes Dialog/suchst ein anderes aus dem Internet mit der Funktionalität.
Mit einer Schleife wirds immer hässlich.
LG

Liebe Grüße impjor.

Für ein gutes Miteinander: Unsere Regeln
Apps für jeden Einsatzzweck
Stellt eure App vor!

Antworten
Sam Browder
  • Forum-Beiträge: 236

10.10.2013, 01:46:44 via Website

Habe leider nichts im Internet finden können, was auch ansatzweise zutreffen könnte.
Desewgen wäre ich sehr dankabar, wenn mir jemand erklären könnte, wie ich hier eine Schleife aufbauen könnte, oder auch eine andere Methode, die aber zum gleichen Ergebnis fürt. Ich komme hier einfach nicht weiter...:(
Danke!
MfG

Antworten
Sam Browder
  • Forum-Beiträge: 236

10.10.2013, 22:21:11 via Website

Also ich habe jetzt so ziemlich alles ausprobiert, was mir eingefallen ist...
Kann mir denn wirklich keiner weiterhelfen:(?

Antworten
Sam Browder
  • Forum-Beiträge: 236

10.10.2013, 23:29:38 via Website

So, hat sich erledigt! Ich habe das Problem selbst gelöst, mit dem von mir gewünschtem Ergebnis.
Schade nur, dass keiner bereit war zu helfen :(
P. S. Wenn irgend jemand die gleichen Fragen, wie oben beschrieben hat - schreibt mir, ich werde weiterhelfen (bzw. den Code zur Verfügung stellen).

— geändert am 11.10.2013, 02:22:18

Antworten
Carsten M.
  • Forum-Beiträge: 33.204

11.10.2013, 03:53:44 via App

Sam Browder
So, hat sich erledigt! Ich habe das Problem selbst gelöst, mit dem von mir gewünschtem Ergebnis.
Schade nur, dass keiner bereit war zu helfen :(
P. S. Wenn irgend jemand die gleichen Fragen, wie oben beschrieben hat - schreibt mir, ich werde weiterhelfen (bzw. den Code zur Verfügung stellen).
Sag mal, geht es eigentlich noch!!??

Ich finde es reichlich dreist, hier zu behaupten, es sei "keiner bereit" Dir zu helfen...!!??

Und gleichzeitig bist Du der große Egoist und lässt hier den Thread ohne Antwort und teilst Deine Erkenntnis nicht mit anderen. Aber den "beantworten" Haken mal gesetzt.

Community heißt nicht, dass alle nach Deiner Pfeife tanzen und Kommunikation ist keine Einbahnstraße!

Der Sinn von Threads ist, dass andere auch später noch Fragen *und Antworten* lesen können. Nicht Fragen und dreiste Vorwürfe verbunden mit einem "Ätsch, ich weiß es jetzt, aber ich sage es euch Blödmännern nicht."

Sorry, aber das ist unfassbar.

Kopfschüttelnde Grüße

Carsten

Ich komm' mir langsam vor wie jemand, der ich bin // #cäthe

San Blarnoi

Antworten
Sam Browder
  • Forum-Beiträge: 236

11.10.2013, 04:50:15 via Website

Carsten Müller
Sam Browder
So, hat sich erledigt! Ich habe das Problem selbst gelöst, mit dem von mir gewünschtem Ergebnis.
Schade nur, dass keiner bereit war zu helfen :(
P. S. Wenn irgend jemand die gleichen Fragen, wie oben beschrieben hat - schreibt mir, ich werde weiterhelfen (bzw. den Code zur Verfügung stellen).
Sag mal, geht es eigentlich noch!!??

Ich finde es reichlich dreist, hier zu behaupten, es sei "keiner bereit" Dir zu helfen...!!??

Und gleichzeitig bist Du der große Egoist und lässt hier den Thread ohne Antwort und teilst Deine Erkenntnis nicht mit anderen. Aber den "beantworten" Haken mal gesetzt.

Community heißt nicht, dass alle nach Deiner Pfeife tanzen und Kommunikation ist keine Einbahnstraße!

Der Sinn von Threads ist, dass andere auch später noch Fragen *und Antworten* lesen können. Nicht Fragen und dreiste Vorwürfe verbunden mit einem "Ätsch, ich weiß es jetzt, aber ich sage es euch Blödmännern nicht."

Sorry, aber das ist unfassbar.

Kopfschüttelnde Grüße

Carsten

Hi,
also ich glaube, du hast da etwas in den falschen Halz bekommen.
Auf jeden Fall war es NICHT von mir so gemeint, wie du es oben geschildert hast :). Aber wenn ich dich mit meinen Posts gekränkt haben sollte, dann tut es mir aufrichtig leid! Ich habe ja auch geschrieben, dass wenn jemand es wissen möchte, werde ich die Lösungen demjenigen auch auf jeden Fall mitteilen. Egal... Wen ich schon dabei bin:

Problem #1
Bilschirmhelligkeit in einer Activity auf Maximum setzen und nach beenden dieser wieder auf den alten Stand:
1WindowManager.LayoutParams lp = getWindow().getAttributes();
2 lp.screenBrightness = 1; // wobei 1= Maximum und 0= Minimum
3 getWindow().setAttributes(lp);
Wenn man dann die Activity mit
1finish();
beendet, geht die Bildschirmhelligkeit auf die alten Einstellungen zurück.

Problem #2
Einen Code bzw. eine Funktion als Endlosschleife ausführen, um (in meinem Fall) einen "Real Time" Effekt bei Farbenvorschau zu ermöglichen.
Das habe ich (wie auch von mir gewollt) mit einem Handler hinbekommen. Ein normaler Handler wäre:
1Handler handler = new Handler();
2 handler.postDelayed(new Runnable() {
3 public void run() {
4 < Code, welcher mit Verzögerung ausgeführt werden muss >
5 }
6 }, < Zeit der Verzögerung in ms >);

Und so sieht eine unendliche Zeitschleife mittels solchen Handler aus (Unterschiede fett markiert):
1final Handler handler = new Handler();
2 handler.postDelayed(new Runnable() {
3 public void run() {
4 handler.postDelayed(this, < Zeit in ms >);
5 < Code, welcher mit Verzögerung ausgeführt werden muss >
6 }
7 }, < Zeit in ms >);

Eigentlich ist das alles ziemlich einfach gewesen, aber irgendwie konnte ich mehrere Tage nicht darauf kommen...

MfG
Sam

— geändert am 11.10.2013, 04:59:19

Antworten