2013-06-24

Ultimate Swing, Teil 25

Erinnern Sie sich noch an meine lose Folge von Posts zu Swing? Nach einer längeren Pause möchte ich den Faden wieder aufnehmen und in den folgenden Monaten den einen oder anderen Kniff zum Besten geben. Außerdem gibt es ja noch das im Rahmen der Serie begonnene Notes and Tasks, das schon in seinem frühen Stadium zu schön ist, um es nicht zu vollenden. Die Quelltexte habe ich in ein Subversion-Repository gepackt, auf das Sie über die Projekthomepage von Notes and Tasks zugreifen können.

Sie erinnern sich vielleicht, dass sich die letzten Folgen um Look and Feels gedreht haben. Ich habe auf Basis von Synth einige Komponenten so gestaltet, dass sie an den (schon länger nicht mehr so genannten) Metro-Look von Microsoft erinnern. Mir ging und geht es dabei nicht darum, eine möglichst genaue Kopie anzufertigen. Eher ist es eine Verneigung vor dem Mut Redmonds, diesen radikalen Neubeginn zu wagen. Sicher gibt es an Windows 8 noch das eine oder andere zu drehen, aber die UI ist wegweisend.

In diesem Post möchte ich mein Look and Feel, das ich übrigens UTLAF (raten Sie doch einmal, wofür UT steht) getauft habe, um die Fähigkeit erweitern, Radio buttons zu rendern. Auch Windows Store apps kennen Radio buttons. Sie sind wie eh und je rund. Diese Seite gibt einen schönen Überblick über die so genannten selection controls, die Windows Store apps zur Verfügung stehen.

UTLAF wird mit der langen Tradition runder Radio buttons brechen. Wie die korrespondierenden Grafiken aussehen, ist im folgenden Screenshot dargestellt. Ich greife dabei das von mir schon mehrfach verwendete Orange (ffa000) wieder auf.

Screenshot: die Grafiken für Radio buttons
Screenshot: die Grafiken für Radio buttons

Wenn Sie wie ich ein Kind der 70er sind, hegen Sie an diese Farbe wahrscheinlich ähnliche Erinnerungen.

Smiley

Um die Grafiken anzuzeigen, müssen wir die XML-Datei des Layouts folgendermaßen erweitern:

      <!-- RadioButton -->  
      <style id="radiobuttonStyle">  
           <opaque value="TRUE" />  
           <imageIcon id="radiobutton_off" path="radiobutton_off.png"/>  
           <imageIcon id="radiobutton_mouse_over_off" path="radiobutton_mouse_over_off.png"/>  
           <imageIcon id="radiobutton_pressed_off" path="radiobutton_pressed_off.png"/>  
           <imageIcon id="radiobutton_on" path="radiobutton_on.png"/>  
           <imageIcon id="radiobutton_mouse_over_on" path="radiobutton_mouse_over_on.png"/>  
           <imageIcon id="radiobutton_pressed_on" path="radiobutton_pressed_on.png"/>  
           <property key="RadioButton.icon" value="radiobutton_off"/>  
           <state>  
             <color type="TEXT_FOREGROUND" value="#505050"/>  
           </state>  
           <state value="PRESSED">    
                <property key="RadioButton.icon" value="radiobutton_pressed_off"/>  
           </state>       
           <state value="PRESSED and SELECTED">    
                <property key="RadioButton.icon" value="radiobutton_pressed_on"/>  
           </state>       
           <state value="SELECTED">    
                <property key="RadioButton.icon" value="radiobutton_on"/>  
           </state>       
           <state value="MOUSE_OVER and SELECTED">    
                <property key="RadioButton.icon" value="radiobutton_mouse_over_on"/>  
           </state>       
           <state value="MOUSE_OVER">    
                <property key="RadioButton.icon" value="radiobutton_mouse_over_off"/>  
           </state>       
      </style>  
      <bind style="radiobuttonStyle" type="region" key="RadioButton"/>      

Wenn Sie meinem Post zu Checkboxen gefolgt sind, werden Ihnen viele Parallelen auffallen. Letztlich geht es auch bei Radio buttons nur darum, zum aktuellen Status die passende Grafik auszuwählen.

Screenshot: Radio buttons go 70s
Screenshot: Radio buttons go 70s

Und – was sagen Sie?

Zwinkerndes Smiley

2013-06-13

Unboxing… Anwoody

…gestatten, Anwoody…
Unboxing Anwoody: Die äußere Verpackung
Unboxing Anwoody: Die äußere Verpackung
Unboxing Anwoody: Ein erster Blick auf die Box
Unboxing Anwoody: Ein erster Blick auf die Box
Unboxing Anwoody: Die Box
Unboxing Anwoody: Die Box
Unboxing Anwoody: Gemütlich, oder? :-)
Unboxing Anwoody: Gemütlich, oder? :-)
Unboxing Anwoody: Hallo, Welt!
Unboxing Anwoody: Hallo, Welt!
Unboxing Anwoody: Da bin ich
Unboxing Anwoody: Da bin ich
Unboxing Anwoody: ...nochmal... ;-)
Dieses Unboxing zeigt eine handgedrechselte Android-Figur aus Holz. Sie kann auf http://www.androidfiguren.de/ bestellt werden. Man kann aus Ahorn, Buche und eiche wählen. Im Gegensatz zu den kleineren Kameraden aus Vinyl sind die Holz-Droiden größer und schwerer. Mein Exemplar bringt stolze 237 Gramm auf die Briefwaage.

2013-06-09

Mit der Zeit gehen: Kalender im neuen Gewand

Wenn Sie meinem Weblog schon länger folgen, wissen Sie, dass mich Kalender und Kalenderkomponenten interessieren. Google hat vor Kurzem eine neue Version der Kalender-App für Android veröffentlicht. Ich möchte sie Ihnen anhand von ein paar Screenshots vorstellen.
Schön ist, dass man direkt auf dem mobilen Gerät Farben für Ereignisse festlegen kann. Die entsprechende Auswahl ist im Folgenden zu sehen.
Screenshot: Terminfarbe
Screenshot: Terminfarbe
Tagesdatum, Monat und Jahr werden in einer vertikal scrollenden Monatsfolge ausgewählt
Screenshot: Tages- und Monatsauswahl (1/2)
Screenshot: Tages- und Monatsauswahl (1/2)
Screenshot: Tages- und Monatsauswahl (2/2)
Screenshot: Tages- und Monatsauswahl (2/2)
Wenn Sie das Jahr antippen, öffnet sich eine Jahresauswahl, die ebenfalls als vertikal scrollende Liste realisiert ist.
Screenshot: Jahresauswahl
Screenshot: Jahresauswahl
Das Aufteilen auf mehrere Sichten ist praktisch, weil der Bildschirm aufgeräumt wirkt, man aber trotzdem schnell seine Wahl treffen kann. Neu ist das freilich nicht, Microsoft tut dies schon sehr lange.
Wirklich nett ist die Auswahl der Terminzeit. Hier hat sich Google vom alten Wählscheibentelefon inspirieren lassen.
Screenshot: Uhrzeit auswählen
Screenshot: Uhrzeit auswählen
Ohne Frage bringen die neuen Eingabemethoden ein Plus an Komfort und Geschwindigkeit. Es macht ganz ehrlich gesagt Spaß, Termine auf diese Weise einzugeben. Schade ist allerdings, dass andere Apps nicht von den neuen Dialogen profitieren. Bis Google vielleicht seine Datums- und Zeitauswahldialoge in Android selbst aufbohrt, hat Google Kalender in diesem Punkt einen Vorsprung. Fragmentierung auf eine andere Weise?