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:
Bereitstellung einer Folge von Anweisungen im Programm.
Bereitstellung einer in XML geschriebene Spezifikation, die den Resourcen des Programms hinzugefügt wird.
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.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.
Die Drawables einer Reglerbahn:
Die Reglerbahn wird durch eine Instanz von LayerDrawable gezeichnet, die zwei andere Drawables übereinanderlegt:
Zuerst wird die Grundlinie der Reglerbahn gezeichnet. Hierfür kommen eine Instanz von ShapeDrawable oder eine Instanz von GradientDrawable in Frage.
Anschließend wird der Wertindikator über die Grundlinie gelegt. Der Wertindikator wird durch eine Instanz von ClipDrawable auf die Größe reduziert, die dem eingestellten Wert entspricht. Für die Darstellung des Wertindikators kommen ein ShapeDrawable, ein PaintDrawable oder ein GradientDrawable in Betracht.
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.
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;