[]NOOB] Scenes how to?

Trans_Am

Trans_Am

Dauergast
455
Hallo,

Habe jetzt endlich mal auf die aktuelle Version updated. Läuft soweit alles sehr stabil, Backup der alten Profile lies sich problemlos einspielen.

Es gibt ja jetzt als Neuerung die scenes. Soweit ich das verstanden hab kann ich mir damit Oberflächen basteln die mit Tasker interagieren.

Mein Versuch mir einen slider zu konfigurieren der mir lediglich klingeltonlautstärke regelt schlug kläglich fehl.

Kann mir jemand an einer anderen scene die vielleicht schon im Einsatz ist erklären wie scenes aufgebaut sind und welche Tücken zu umgehen sind?
Eine scene hat mir mal das Display blockiert, bis zum Neustart ging nichts mehr.

Danke schon mal
Gruss maat
 
Würde mich auch brennend interessieren. Gibts generell sowas wie ein Tutorial dazu? Mit den Scenes komme ich überhaupt nicht klar...
 
Push :)

Gruss maat
 
[FONT=Arial, sans-serif]Die vorgenannten Anleitungen waren ein guter Einstieg in die Erstellung von Szenen. Allerdings war bei Umsetzung der eigenen Wünsche und Ideen dann doch viel Versuch&Fehler als es um die Verbindung mit eigenen Variablen ging, das Erstellen eines Menüs aus einem Array und das Vorbelegen von Button-Beschriftungen im Zusammenhang mit zusätzlichen Tasks u.a.m. ...
Daher die Motivation:


Szenen erstellen und verwenden
[/FONT]
1.Einleitung

Szenen sind grafische Benutzeroberflächen (neudeutsche Abkürzung: GUI) um z.B. Variablenwerte wie die SMS-Vorlesegeschwindigkeit anzuzeigen oder zu ändern, per Button eine Aktion zu starten, mit einem Schieberegler (Slider) die Lautstärke einzustellen etc.pp.

Um solche Funktionen interaktiv nutzbar zu machen, muss man eine Szene erstellen. Also die grafischen Elemente definieren und konfigurieren, die man benötigt um z.B. ein Profil zu (de)aktivieren oder einen Variablenwert eingeben zu können.
Dabei beschreibt die Szene u.a. Größe und Farbe der Benutzeroberfläche und z.B. Position, Größe und Beschriftung eines Buttons oder den auswählbaren Wertebereich eines Schiebereglers.

Wenn man eine Szene erstellt hat, muss man sie zur Ausführung bringen. Diese Aufgabe übernimmt ein Task, den man dazu erstellt. Simples Grundgerüst:

Variante A:
[FONT=Courier New, monospace]Create Scene X[/FONT]
[FONT=Courier New, monospace]Show Scene X[/FONT] (Option ~continue task: no~ Option ~Show exit button: yes~)
[FONT=Courier New, monospace]Destroy Scene X[/FONT]
Variante B:
[FONT=Courier New, monospace]Create Scene X[/FONT]
[FONT=Courier New, monospace]Show Scene X[/FONT] (Option ~continue task: yes~ Option ~Show exit button: yes~)
[FONT=Courier New, monospace]# [/FONT][FONT=Courier New, monospace]Destroy Scene X[/FONT] muss über einen Ende-Button der Szene ausgelöst werden
Der Task kann über ein Profil, ein Widget oder eine Verknüpfung zur Ausführung kommen – der übliche Weg dürfte Verknüpfung oder Widget sein.

germanos-albums-screenshots-picture3658-scenetemplate-2012-11-14-2231-small.png


Was man aber auch wissen muss, ist die Tatsache, dass die Elemente einer Szene sozusagen nix von der Realität wissen!? Z.B. kann ein Schieberegler zwar Werte von 0 bis 10 darstellen und vom Benutzer ändern lassen. Aber es gibt (zunächst) keine Verbindung von diesem Zahlenwert zu unseren Variablen oder Systemvariablen. Diese Verbindung müssen wir über benannte und/oder unbenannte Tasks herstellen.

Der ursprüngliche Beitrag von 23:17 Uhr wurde um 23:25 Uhr ergänzt:

2.Elemente einer Szene mit einer Benutzervariablen verbinden

Nehmen wir an, dass wir die Vorlesegeschwindigkeit von 4 bis 6 einstellen können wollen. Der aktuelle Wert unserer Vorlese-Task ist über die Variable %Speed=4 festgelegt.
Also teilen wir das dem Schieberegler vor dessen Anzeige mit:
[FONT=Courier New, monospace]Create Scene X[/FONT]
[FONT=Courier New, monospace]Scene X – Element Value - SpeedSlider1 = %Speed[/FONT]
[FONT=Courier New, monospace]Show Scene....[/FONT]
Dadurch zeigt die Szene gleich beim Start unseren aktuellen Wert an. Wenn wir nun den Regler auf z.B. 5 schieben, wird %Speed jedoch nicht verändert. Wie auch? Wir haben es Tasker und der Szene ja noch nicht gesagt...

Im Szenen-Editor gibt es für jedes Element verschiedene Registerkarten, so auch „Value Selected“ für ein Schieberegler-Element. Dort wird als unbenannte Task definiert, was passieren soll, wenn der Schieberegler bewegt wurde. Der neue Wert ist in der Task als %new_val nutzbar, der vorherige Wert über %old_val.
Verbinden wir also den Regler an dieser Stelle mit unserer Variablen und unserer Vorlese-Task:
[FONT=Courier New, monospace]%Speed = %new_val[/FONT]
Und schon haben wir eine Szene, die sich wie ein Optionen-Dialog verhält.

(Im vorherigen Screenshot und der Beispiel-Szene regelt der Schieberegler die Klingeltonlautstärke - ähnliches Vorgehen)

Was passieren soll, wenn z.B. ein Button gedrückt wird, legt man in der Registerkarte „Tap“ fest. Etwas komplizierter sind die Menü-Elemente, bei denen Tasker andere Variablen als %new_val zur Verfügung stellt. Aber dazu vielleicht später mehr und in den Beispielen.

3.Eine Szene mit ENDE-Button – eine gute Idee

Ich persönlich bevorzuge o.g. Variante B: eine Szene, die einen ENDE-/Zurück-Button hat und sich damit selbstständig beendet während die die Szene aufrufende Task unabhängig davon weiterläuft oder sich beendet.

Wie geht das?

In der Szene wird ein Button mit z.B. dem Text ENDE oder Zurück definiert, der in der Registerkarte „Tap“ die Anweisung [FONT=Courier New, monospace]Destroy Scene X[/FONT] enthält – die Szene begeht sozusagen Suizid.

Der ursprüngliche Beitrag von 23:25 Uhr wurde um 23:28 Uhr ergänzt:

4.Optionen von Show Scene – Display as...

Eine Szene kann u.a. als Applikation (~Activity~), Popup oder Überlagerung (Overlay) angezeigt werden und in manchen Modi einen von Tasker generierten Exit-Button als „Not-Aus“ haben. Für den Anfang arbeitet man am Besten mit den Optionen
Show Scene
Option: [FONT=Courier New, monospace]Display as[/FONT]: Activity, Full Window
Option: [FONT=Courier New, monospace]Show Exit Button[/FONT]: yes
Option: [FONT=Courier New, monospace]Continue Task Immediately[/FONT]: yes
# sofern man einen eigenen ENDE-Button hat
und kann sich damit nicht aussperren oder das Display blockieren.

Hier lohnt es sich, in der Tasker-Hilfe und -Dokumentation zu lesen. In Kürze: Activity skaliert die Szene auf Display-Größe und verdeckt damit alles bis auf die Statusleiste oben. Andere Modi (nicht: Full Window) zeigen die Szenen in der im Szenen-Editor definierten Größe an so dass ggf. noch Elemente auf dem Home-Screen erreichbar sind.

Der von Tasker generierte Exit-Button ist ein kleines rotes Kreuz in der rechten unteren Ecke zum schließen der Szene – m.E. eine Vorsorge, falls man etwas falsch programmiert hat.

5.Szenen und (Probleme mit) Task-Prioritäten

Wenn eine Szene über ein Widget (oder eine Verknüpfung aufgerufen wird) hat sie sozusagen die Priorität 7. Nämlich die Priorität, die Tasker den über Widgets aufgerufen Tasks zuweist. Das ist solange uninteressant wie man weder benannte Tasks aus der Registerkarte „Tap“ eines Elements aufruft oder solange man auf das Ändern von Szenen-Elementen durch eine parallel laufende Task verzichtet während die Szene bereits angezeigt wird.

Ein von einer Szene ausgelöste Task, die auch Szenen-Elemente ändern soll (Slider-Wert, Button-Text/-Farbe für On/Off-Zustand, …) muss mindestens die Priorität 6, besser 7, erhalten, damit die Änderung zeitnah in der angezeigten Szene sichtbar wird!
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: vepman und gerry27
6.Szenen sind durchsichtig – in der Standard-Einstellung

In der Standard-Einstellung schimmert bei der Anzeige von Szenen recht viel vom Hintergrund durch. Wenn und wen das stört, der kann ein Hintergrundelement für eine Szene definieren und dessen Durchsichtigkeit reduzieren. Im Ergebnis erhält man so eine den Hintergrund überdeckende Szene.

Kurzes Kochrezept:

In der Szene ein Rechteck anlegen und dessen Farbe (Option: Colour) nach Belieben wählen. Dabei wird die Farbe in 4 Bytes angegeben: 1 Byte Durchsichtigkeit + 3 Byte RGB Wert. Die Angaben sind Hexadezimal (von 00 über 99, A0 bis FF) und jeweils 2 Buchstaben/Ziffern sind ein Byte, Beispiel:
#FA334455
FA (Hex) ist der Wert 250 für die Durchsichtigkeit: 0 = durchsichtig / 255 = deckend
33(Hex) ist der Rot-Wert
44(Hex) der Grün-Wert
55(Hex) der Blau-Wert
ein dunkles Blaugrau mit Deckkraft.
Um dieses Rechteck als Szenen-Hintergrund zu verwenden, muss man es lange Drücken und in den Optionen dann „Set Background“ auswählen (lange Drücken auf Hintergrund-Element und „Set Foreground“ macht es wieder sichtbar und bearbeitbar).

In der Tasker-Hilfe wird empfohlen, zusätzlich die Hintergrundfarbe einer Szene festzulegen. Wie sich das von dem vorgenannten Hintergrund-Element unterscheidet, macht man am Besten sichtbar, indem man es nutzt und z.B. bei blauem Hintergrund-Element eine rote Hintergrund-Farbe wählt. Sichtbar ist das insbesondere in der automatisch von Tasker generierten Szenen-Überschrift bei [FONT=Courier New, monospace]Display as: Activity[/FONT].

7.Und was können Szenen noch?

Damit ist lange nicht alles über Szenen und deren Möglichkeiten geschrieben. Aber vielleicht über ein paar Stolpersteine und über Eigenheiten, die in anderen Anleitungen so nicht aufgegriffen wurden. Auf Anfrage kann dieser Text ergänzt werden.


Die Screenshots motivieren hoffentlich zu eigener „Forschung“ - Viel Spaß!
=> zum Album
 

Anhänge

  • SceneTemplate Scene+Task.zip
    2,3 KB · Aufrufe: 233
Zuletzt bearbeitet:
  • Danke
Reaktionen: McFrey, vepman und gerry27

[Szenen können auch dynamisch, ähnlich wie Widgets, ihr Erscheinungsbild ändern. Sei es über Tasks wie "scene element visibility" oder "scene element position". Entsprechende Werte für element position z.B. können auch in Variablen stecken, welche ihrerseits Änderungen direkt an die Szene weitergeben.]

:edit: wurde ja alles schon genannt :blushing:. Das Beispiel kann aber dennoch recht hilfreich sein.

Ein hübsches Beispiel findet sich hier:
https://www.android-hilfe.de/forum/...asker-profile.284580-page-6.html#post-4290687
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: vepman, germanos und gerry27

Ähnliche Themen

Spardas
Antworten
3
Aufrufe
602
Spardas
Spardas
Viper73
Antworten
8
Aufrufe
322
rtwl
rtwl
S
Antworten
53
Aufrufe
2.196
Surya
S
Zurück
Oben Unten