zu www.bildungsgueter.de nächster Abschnitt zur Inhaltsübersicht des Kapitels

Darstellungseigenschaften eines Schiebereglers festlegen

Der Schieberegler mit dem runden blassblauen Reglerknopf muss nicht jedem gefallen. Wenn du auf ein individuelles Design Wert legst, kannst du nicht nur die Farbe des Reglerknopfes, sondern auch seine Form ändern. Auch die Darstellung der Reglerbahn kann individualisiert werden.

Für die Individualisierung eines Darstellungselements stehen zwei sehr verschiedene Verfahren zur Wahl:

Grundlage beider Individualisierungsverfahren ist der besondere Aufbau aller Darstellungselemente der Android-Bibliothek: Ein Darstellungselement wird mit Drawables gezeichnet, die jederzeit durch Änderung einer Spezifikation oder durch Anweisungen im Programm allgemein oder für einzelne Darstellungselemente ausgetauscht werden können.

Die visuellen Bestandteile eines Schiebereglers sind die Reglerbahn, der Wertindikator und der Reglerknopf. Reglerbahn und Wertindikator sind im übrigen auch Bestandteile des Fortschrittsindikators "ProgressBar", von dem sie geerbt werden.

Bestandteile eines Schiebereglers

Die Reglerbahn

Die Reglerbahn besteht aus zwei übereinandergelegten Drawables, dem Hintergrund und dem Wertindikator. Hintergrund und Wertindikator werden in einem LayerDrawable zusammengefasst. Dabei muss der Hintergrund vor dem Wertindikator kommen.

Aufbau der Reglerbahn

Die Drawables einer Reglerbahn:

Die Drawables der Reglerbahn

Die Reglerbahn wird durch eine Instanz von LayerDrawable gezeichnet, die zwei andere Drawables übereinanderlegt:

Der Reglerknopf

Der Reglerknopf ist eine Gruppe von Drawables, die unterschiedlichen Zuständen des Reglers zugeordnet sind. Alle Drawables des Reglers werden in einem StateListDrawable zusammengefasst.

Hier fehlen eine Grafik und die dazugehörende Erklärung.

Programmierte Individualisierung des Schiebereglers

Für die Individualisierung des Schiebereglers müssen die folgenden Pakete importiert werden:

import android.graphics.*;
import android.graphics.drawable.*;
import android.graphics.drawable.shapes.*;
import android.view.Gravity;


zur Inhaltsübersicht des Kapitels nächster Abschnitt