Eine Drawable-Ressource ist ein allgemeines Konzept für eine Grafik, die auf dem Bildschirm dargestellt werden kann und mit APIs wie getDrawable(int)
abgerufen oder mit Attributen wie android:drawable
und android:icon
auf eine andere XML-Ressource angewendet werden kann.
Es gibt verschiedene Arten von Drawables:
- Bitmapdatei
-
- Eine Bitmapgrafikdatei (PNG, WEBP, JPG oder GIF)
Erstellt ein
BitmapDrawable
.
- Datei mit neun Patches
- Eine PNG-Datei mit ausdehnbaren Bereichen, damit die Größe von Bildern je nach Inhalt angepasst werden kann (
.9.png
). Erstellt eine NinePatchDrawable
.
- Ebenenliste
- Ein Drawable, das eine Reihe anderer Drawables verwaltet. Sie werden in Array-Reihenfolge gezeichnet, sodass das Element mit dem größten Index ganz oben angezeigt wird. Erstellt ein
LayerDrawable
.
- Liste der Bundesstaaten
- Eine XML-Datei, die auf verschiedene Bitmapgrafiken für verschiedene Zustände verweist, z. B. um ein anderes Bild beim Tippen auf eine Schaltfläche zu verwenden.
Erstellt ein
StateListDrawable
.
- Levelliste
- Eine XML-Datei, die ein Drawable definiert, das eine Reihe alternativer Drawables verwaltet, denen jeweils einen maximalen numerischen Wert zugewiesen ist. Erstellt ein
LevelListDrawable
.
- Drehbuch mit Wechsel
- Eine XML-Datei, die ein Drawable definiert, das zwischen zwei Drawable-Ressourcen überblenden kann.
Erstellt ein
TransitionDrawable
.
- Drawable
- Eine XML-Datei, die ein Drawable definiert, das ein anderes Drawable um eine bestimmte Entfernung einfügt.
Dies ist nützlich, wenn eine Ansicht ein Hintergrund-Drawable benötigt, das kleiner als die tatsächlichen Begrenzungen der Ansicht ist.
- Clip-Drawable
- Eine XML-Datei, die ein Drawable definiert, das ein anderes Drawable basierend auf dem aktuellen Levelwert dieses Drawable zuschneidet. Erstellt ein
ClipDrawable
.
- Drehbuch skalieren
- Eine XML-Datei, die ein Drawable definiert, das die Größe eines anderen Drawable basierend auf seinem aktuellen Levelwert ändert. Erstellt ein
ScaleDrawable
- Shape-Drawable.
- Eine XML-Datei, in der eine geometrische Form definiert wird, einschließlich Farben und Farbverläufe.
Erstellt ein
GradientDrawable
.
Informationen zum Erstellen eines AnimationDrawable
finden Sie im Dokument zu Animationsressourcen.
Hinweis:Eine Farbressource kann auch als Drawable in XML verwendet werden. Wenn du beispielsweise eine Drawable mit Statusliste erstellst, kannst du auf eine Farbressource für das Attribut android:drawable
(android:drawable="@color/green"
) verweisen.
Bitmap
Ein Bitmapbild. Android unterstützt Bitmap-Dateien in den folgenden Formaten: PNG (bevorzugt), WEBP (bevorzugt, API-Level 17 oder höher erforderlich), JPG (akzeptabel), GIF (nicht empfohlen).
Sie können direkt auf eine Bitmapdatei verweisen und den Dateinamen als Ressourcen-ID verwenden, oder Sie können eine Alias-Ressourcen-ID in XML erstellen.
Hinweis:Bitmapdateien können während des Build-Prozesses mit dem aapt
-Tool automatisch mit einer verlustfreien Bildkomprimierung optimiert werden. Beispielsweise kann eine farbige PNG-Datei, die nicht mehr als 256 Farben erfordert, in ein 8-Bit-PNG mit einer Farbpalette konvertiert werden. Dies führt zu einem Bild von gleicher Qualität, das weniger Arbeitsspeicher benötigt.
Die in diesem Verzeichnis gespeicherten Binärdateien für das Image können sich also während des Builds ändern. Wenn Sie ein Bild als Bitstream lesen und in eine Bitmap konvertieren möchten, legen Sie die Bilder stattdessen im Ordner res/raw/
ab, in dem sie nicht optimiert sind.
Bitmapdatei
Eine Bitmapdatei ist eine PNG-, WEBP-, JPG- oder GIF-Datei. Android erstellt für jede dieser Dateien eine Drawable
-Ressource, wenn Sie sie im Verzeichnis res/drawable/
speichern.
- Dateispeicherort:
res/drawable/filename.png
(.png
, .webp
, .jpg
oder .gif
)
Der Dateiname ist die Ressourcen-ID.
- kompilierter Ressourcentyp:
- Ressourcenverweis auf eine
BitmapDrawable
- Ressourcenreferenz:
-
In Java:
R.drawable.filename
In XML: @[package:]drawable/filename
- Beispiel:
- Wenn ein Bild unter
res/drawable/myimage.png
gespeichert ist, wird das Bild durch diese Layout-XML auf eine Ansicht angewendet:
<ImageView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:src="@drawable/myimage" />
Mit dem folgenden Anwendungscode wird das Bild als Drawable
abgerufen:
Kotlin
val drawable: Drawable? = ResourcesCompat.getDrawable
(resources, R.drawable.myimage, null)
- Siehe auch:
-
XML-Bitmap
Eine XML-Bitmap ist eine im XML-Format definierte Ressource, die auf eine Bitmapdatei verweist. Der Effekt ist ein Alias für eine Roh-Bitmapdatei. In der XML-Datei können zusätzliche Eigenschaften für die Bitmap angegeben werden, z. B. Dithering und Tiling.
Hinweis:Sie können ein <bitmap>
-Element als untergeordnetes Element eines <item>
-Elements verwenden. Wenn du beispielsweise eine Statusliste oder eine Ebenenliste erstellst, kannst du das Attribut android:drawable
von einem <item>
-Element ausschließen und darin ein <bitmap>
-Element verschachteln, das das Drawable-Element definiert.
- Dateispeicherort:
res/drawable/filename.xml
Der Dateiname ist die Ressourcen-ID.
- kompilierter Ressourcentyp:
- Ressourcenverweis auf eine
BitmapDrawable
- Ressourcenreferenz:
-
In Java:
R.drawable.filename
In XML: @[package:]drawable/filename
- Syntax:
-
<?xml version="1.0" encoding="utf-8"?>
<bitmap
xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@[package:]drawable/drawable_resource"
android:antialias=["true" | "false"]
android:dither=["true" | "false"]
android:filter=["true" | "false"]
android:gravity=["top" | "bottom" | "left" | "right" | "center_vertical" |
"fill_vertical" | "center_horizontal" | "fill_horizontal" |
"center" | "fill" | "clip_vertical" | "clip_horizontal"]
android:mipMap=["true" | "false"]
android:tileMode=["disabled" | "clamp" | "repeat" | "mirror"] />
- Elemente:
-
<bitmap>
- Erforderlich. Definiert die Bitmapquelle und ihre Eigenschaften.
Attribute:
xmlns:android
- String Definiert den XML-Namespace. Dieser muss
"http://schemas.android.com/apk/res/android"
sein. Dies ist nur erforderlich, wenn <bitmap>
das Stammelement ist. Es wird nicht benötigt, wenn <bitmap>
in einem <item>
verschachtelt ist.
android:src
- Drawable-Ressource. Erforderlich. Verweis auf eine Drawable-Ressource.
android:antialias
- Boolescher Wert. Aktiviert oder deaktiviert das Antialiasing.
android:dither
- Boolescher Wert. Aktiviert oder deaktiviert das Dithering der Bitmap, wenn die Bitmap nicht dieselbe Pixelkonfiguration wie der Bildschirm hat, z. B. eine ARGB 8888-Bitmap auf einem RGB 565-Bildschirm.
android:filter
- Boolescher Wert. Aktiviert oder deaktiviert die Bitmap-Filterung. Filtern wird verwendet, wenn die Bitmap verkleinert oder gestreckt wird, um ihr Aussehen zu glätten.
android:gravity
- Keyword. Definiert die Gravitation der Bitmap. Die Gravitation gibt an, wo das Drawable im Container positioniert werden soll, wenn die Bitmap kleiner als der Container ist.
Muss einer oder mehrere der folgenden konstanten Werte sein, getrennt durch |
:
Antwort | Beschreibung |
top |
Platzieren Sie das Objekt oben in seinem Container, ohne seine Größe zu ändern. |
bottom |
Lege das Objekt auf den Boden des Behälters, ohne seine Größe zu ändern. |
left |
Platzieren Sie das Objekt am linken Rand des Containers, ohne seine Größe zu ändern. |
right |
Platzieren Sie das Objekt am rechten Rand des Containers, ohne seine Größe zu ändern. |
center_vertical |
Platzieren Sie das Objekt vertikal mittig in seinem Container, ohne seine Größe zu ändern. |
fill_vertical |
Vergrößern Sie bei Bedarf die vertikale Größe des Objekts, damit es seinen Behälter vollständig ausfüllt. |
center_horizontal |
Platzieren Sie das Objekt in der horizontalen Mitte des Containers, ohne seine Größe zu ändern. |
fill_horizontal |
Vergrößern Sie bei Bedarf die horizontale Größe des Objekts, damit es seinen Behälter vollständig ausfüllt.
|
center |
Platzieren Sie das Objekt sowohl in der vertikalen als auch in der horizontalen Achse in der Mitte seines Containers, ohne seine Größe zu ändern. |
fill |
Vergrößern Sie bei Bedarf die horizontale und vertikale Größe des Objekts, damit es seinen Container vollständig füllt. Das ist die Standardeinstellung. |
clip_vertical |
Zusätzliche Option, die so festgelegt werden kann, dass der obere und/oder untere Rand des untergeordneten Elements an die Containergrenzen begrenzt wird. Der Clip basiert auf der vertikalen Schwerkraft: Eine obere Gravitation schneidet den unteren Rand, eine untere Schwerkraft am oberen Rand ab und keine an beiden Kanten.
|
clip_horizontal |
Zusätzliche Option, die so festgelegt werden kann, dass der linke und/oder rechte Rand des untergeordneten Elements an seine Containergrenzen begrenzt wird. Der Clip basiert auf der horizontalen Gravitation: Eine linke Gravitation schließt die rechte Kante, eine rechte Gravitation an der linken Kante ab, aber keiner der Clips wird an beiden Kanten abgeschnitten.
|
android:mipMap
- Boolescher Wert. Aktiviert oder deaktiviert den Mipmap-Hinweis. Weitere Informationen findest du in den
setHasMipMap()
.
Der Standardwert ist "false".
android:tileMode
- Keyword. Definiert den Kachelmodus. Wenn der Kachelmodus aktiviert ist, wird die Bitmap wiederholt. Die Schwerkraft wird ignoriert, wenn der Kachelmodus aktiviert ist.
Muss einer der folgenden konstanten Werte sein:
Antwort | Beschreibung |
disabled |
Die Bitmap darf nicht gekachelt werden. Dies ist der Standardwert. |
clamp |
Die Kantenfarbe replizieren, wenn der Shader außerhalb seiner ursprünglichen Begrenzungen zeichnet |
repeat |
Wiederholen Sie das Bild des Shaders horizontal und vertikal. |
mirror |
Wiederholen Sie das Bild des Shaders horizontal und vertikal und wechseln Sie abwechselnd Spiegelbilder, damit benachbarte Bilder immer zusammenpassen. |
- Beispiel:
-
<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/icon"
android:tileMode="repeat" />
- Siehe auch:
-
Neun-Patch
Ein NinePatch
ist ein PNG-Bild, in dem Sie dehnbare Regionen definieren können, die Android skaliert, wenn der Inhalt in der Ansicht die normalen Bildgrenzen überschreitet. In der Regel weisen Sie diesen Bildtyp als Hintergrund einer Ansicht zu, in der mindestens eine Dimension auf "wrap_content"
festgelegt ist.
Wenn die Ansicht vergrößert wird, um den Inhalt unterzubringen, wird das Bild mit neun Patches ebenfalls an die Größe der Ansicht angepasst. Ein Beispiel für die Verwendung eines Images mit neun Patches ist der Hintergrund, der vom standardmäßigen Button
-Widget von Android verwendet wird. Dieses Widget muss sich so strecken, dass sich der Text (oder das Bild) in der Schaltfläche befindet.
Wie bei einer normalen Bitmap können Sie direkt auf eine Neun-Patch-Datei oder über eine per XML definierte Ressource verweisen.
Eine ausführliche Erläuterung zum Erstellen einer Datei mit neun Patches und dehnbaren Regionen finden Sie unter Bitmaps mit anpassbarer Größe erstellen (9-Patch-Dateien).
Datei mit neun Patches
- Dateispeicherort:
res/drawable/filename.9.png
Der Dateiname ist die Ressourcen-ID.
- kompilierter Ressourcentyp:
- Ressourcenverweis auf eine
NinePatchDrawable
- Ressourcenreferenz:
-
In Java:
R.drawable.filename
In XML: @[package:]drawable/filename
- Beispiel:
- Wenn ein Bild unter
res/drawable/myninepatch.9.png
gespeichert ist, wendet diese Layout-XML den neun Patches auf eine Ansicht an:
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:background="@drawable/myninepatch" />
- Siehe auch:
-
XML 9-Patch
Ein Neun-Patch-XML ist eine im XML-Format definierte Ressource, die auf eine Neun-Patch-Datei verweist. Die XML-Datei kann das Dithering für das Bild angeben.
- Dateispeicherort:
res/drawable/filename.xml
Der Dateiname ist die Ressourcen-ID.
- kompilierter Ressourcentyp:
- Ressourcenverweis auf eine
NinePatchDrawable
- Ressourcenreferenz:
-
In Java:
R.drawable.filename
In XML: @[package:]drawable/filename
- Syntax:
-
<?xml version="1.0" encoding="utf-8"?>
<nine-patch
xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@[package:]drawable/drawable_resource"
android:dither=["true" | "false"] />
- Elemente:
-
<nine-patch>
- Erforderlich. Definiert die Neun-Patch-Quelle und ihre Eigenschaften.
Attribute:
xmlns:android
- String Erforderlich. Definiert den XML-Namespace. Dieser muss
"http://schemas.android.com/apk/res/android"
sein.
android:src
- Drawable-Ressource. Erforderlich. Verweis auf eine Neun-Patch-Datei.
android:dither
- Boolescher Wert. Aktiviert oder deaktiviert das Dithering der Bitmap, wenn die Bitmap nicht dieselbe Pixelkonfiguration wie der Bildschirm hat, z. B. eine ARGB 8888-Bitmap auf einem RGB 565-Bildschirm.
- Beispiel:
-
<?xml version="1.0" encoding="utf-8"?>
<nine-patch xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/myninepatch"
android:dither="false" />
Ebenenliste
Ein LayerDrawable
ist ein Drawable-Objekt, das ein Array anderer Drawables verwaltet. Jedes Drawable in der Liste wird in der Reihenfolge der Liste gezeichnet. Das letzte Drawable in der Liste wird oben gezeichnet.
Jedes Drawable wird durch ein <item>
-Element innerhalb eines einzelnen <layer-list>
-Elements dargestellt.
- Dateispeicherort:
res/drawable/filename.xml
Der Dateiname ist die Ressourcen-ID.
- kompilierter Ressourcentyp:
- Ressourcenverweis auf eine
LayerDrawable
- Ressourcenreferenz:
-
In Java:
R.drawable.filename
In XML: @[package:]drawable/filename
- Syntax:
-
<?xml version="1.0" encoding="utf-8"?>
<layer-list
xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:drawable="@[package:]drawable/drawable_resource"
android:id="@[+][package:]id/resource_name"
android:top="dimension"
android:right="dimension"
android:bottom="dimension"
android:left="dimension" />
</layer-list>
- Elemente:
-
<layer-list>
- Erforderlich. Dies muss das Stammelement sein. Enthält ein oder mehrere
<item>
-Elemente.
Attribute:
xmlns:android
- String Erforderlich. Definiert den XML-Namespace. Dieser muss
"http://schemas.android.com/apk/res/android"
sein.
<item>
- Definiert ein Drawable, das auf der Ebene als Drawable platziert werden soll, an einer durch seine Attribute definierten Position.
Muss einem
<layer-list>
-Element untergeordnet sein. Akzeptiert untergeordnete <bitmap>
-Elemente.
Attribute:
android:drawable
- Drawable-Ressource. Erforderlich. Verweis auf eine Drawable-Ressource.
android:id
- Ressourcen-ID. Eine eindeutige Ressourcen-ID für dieses Drawable. Verwenden Sie das Formular
"@+id/name"
, um eine neue Ressourcen-ID für dieses Element zu erstellen. Das Plus-Symbol zeigt an, dass dies als neue ID erstellt wurde. Du kannst diese ID verwenden, um das Drawable mit View.findViewById()
oder Activity.findViewById()
abzurufen und zu ändern.
android:top
- Dimension: Der obere Offset als Dimensionswert oder Dimensionsressource.
android:right
- Dimension: Den rechten Offset, als Dimensionswert oder Dimensionsressource.
android:bottom
- Dimension: Der untere Offset als Dimensionswert oder Dimensionsressource.
android:left
- Dimension: Der linke Offset als Dimensionswert oder Dimensionsressource.
Alle Drawable-Elemente werden standardmäßig an die Größe der Ansicht skaliert, in der sie enthalten sind. Wenn Sie Ihre Bilder also an verschiedenen Positionen in einer Ebenenliste platzieren, wird die Ansicht möglicherweise größer und einige Bilder werden entsprechend skaliert.
Um Elemente in der Liste nicht zu skalieren, kannst du ein <bitmap>
-Element innerhalb des <item>
-Elements verwenden, um das Drawable anzugeben und die Gravitation auf etwas zu definieren, das nicht skaliert werden kann, z. B. "center"
. Die folgende <item>
definiert beispielsweise ein Element, das an seine Containeransicht angepasst wird:
<item android:drawable="@drawable/image" />
Im folgenden Beispiel wird ein <bitmap>
-Element mit Schwerkraft verwendet, um Skalierung zu vermeiden:
<item>
<bitmap android:src="@drawable/image"
android:gravity="center" />
</item>
- Beispiel:
- XML-Datei gespeichert unter
res/drawable/layers.xml
:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<bitmap android:src="@drawable/android_red"
android:gravity="center" />
</item>
<item android:top="10dp" android:left="10dp">
<bitmap android:src="@drawable/android_green"
android:gravity="center" />
</item>
<item android:top="20dp" android:left="20dp">
<bitmap android:src="@drawable/android_blue"
android:gravity="center" />
</item>
</layer-list>
In diesem Beispiel wird ein verschachteltes <bitmap>
-Element verwendet, um die Drawable-Ressource für jedes Element mit einer "center"
-Schwerkraft zu definieren. Dadurch wird sichergestellt, dass keines der Bilder für die Größe des Containers skaliert wird, da die Größenänderung durch die versetzten Bilder verursacht wird.
Diese Layout-XML wendet das Drawable auf eine Ansicht an:
<ImageView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:src="@drawable/layers" />
Das Ergebnis ist ein Stapel von Bildern mit zunehmendem Offset:
- Siehe auch:
-
Liste der Bundesstaaten
Ein StateListDrawable
ist ein in XML definiertes Drawable-Objekt, das je nach Zustand des Objekts mehrere Bilder verwendet, um dieselbe Grafik darzustellen. Beispielsweise kann der Status eines Button
-Widgets angetippt oder fokussiert werden oder keiner von beiden. Wenn Sie ein Drawable für die Statusliste verwenden, können Sie für jeden Status ein anderes Hintergrundbild bereitstellen.
Sie beschreiben die Liste der Bundesstaaten in einer XML-Datei. Jede Grafik wird durch ein <item>
-Element innerhalb eines einzelnen <selector>
-Elements dargestellt. Jedes <item>
verwendet verschiedene Attribute, um den Zustand zu beschreiben, in dem es als Grafik für das Drawable verwendet wird.
Bei jeder Statusänderung wird die Statusliste von oben nach unten durchlaufen und das erste Element, das dem aktuellen Status entspricht, wird verwendet. Die Auswahl basiert nicht auf der „besten Übereinstimmung“, sondern auf dem ersten Element, das die Mindestkriterien des Bundesstaates erfüllt.
- Dateispeicherort:
res/drawable/filename.xml
Der Dateiname ist die Ressourcen-ID.
- kompilierter Ressourcentyp:
- Ressourcenverweis auf eine
StateListDrawable
- Ressourcenreferenz:
-
In Java:
R.drawable.filename
In XML: @[package:]drawable/filename
- Syntax:
-
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"
android:constantSize=["true" | "false"]
android:dither=["true" | "false"]
android:variablePadding=["true" | "false"] >
<item
android:drawable="@[package:]drawable/drawable_resource"
android:state_pressed=["true" | "false"]
android:state_focused=["true" | "false"]
android:state_hovered=["true" | "false"]
android:state_selected=["true" | "false"]
android:state_checkable=["true" | "false"]
android:state_checked=["true" | "false"]
android:state_enabled=["true" | "false"]
android:state_activated=["true" | "false"]
android:state_window_focused=["true" | "false"] />
</selector>
- Elemente:
-
<selector>
- Erforderlich. Dies muss das Stammelement sein. Enthält ein oder mehrere
<item>
-Elemente.
Attribute:
xmlns:android
- String Erforderlich. Definiert den XML-Namespace. Dieser muss
"http://schemas.android.com/apk/res/android"
sein.
android:constantSize
- Boolescher Wert. Dieser Wert ist „True“, wenn die gemeldete interne Größe des Drawable konstant bleibt, wenn sich der Status ändert (die Größe ist das Maximum aller Zustände). Ist „false“, wenn die Größe je nach aktuellem Status variiert. Der Standardwert ist "false".
android:dither
- Boolescher Wert. „True“, um das Dithering der Bitmap zu aktivieren, wenn die Bitmap nicht dieselbe Pixelkonfiguration wie der Bildschirm hat, z. B. eine ARGB 8888-Bitmap auf einem RGB 565-Bildschirm, und „false“, um das Dithering zu deaktivieren. Der Standardwert ist „true“.
android:variablePadding
- Boolescher Wert. „True“, wenn sich das Padding des Drawables basierend auf dem aktuell ausgewählten Status ändert; „false“, wenn das Padding basierend auf der maximalen Auffüllung aller Zustände gleich bleiben muss. Wenn Sie diese Funktion aktivieren möchten, müssen Sie das Layout anpassen, wenn sich der Status ändert. Dies wird oft nicht unterstützt. Der Standardwert ist "false".
<item>
- Definiert ein Drawable, das in bestimmten Stadien verwendet werden soll, wie durch seine Attribute beschrieben. Muss einem
<selector>
-Element untergeordnet sein.
Attribute:
android:drawable
- Drawable-Ressource. Erforderlich. Verweis auf eine Drawable-Ressource.
android:state_pressed
- Boolescher Wert. „True“, wenn dieses Element beim Antippen des Objekts verwendet wird, z. B. beim Berühren einer Schaltfläche. „false“, wenn dieses Element im Standardzustand verwendet wird, also nicht angetippt wird.
android:state_focused
- Boolescher Wert. „True“, wenn dieses Element verwendet wird, wenn das Objekt einen Eingabefokus hat, z. B. wenn der Nutzer eine Texteingabe auswählt. „false“, wenn dieses Element im Standardzustand verwendet wird, aber nicht im Fokus.
android:state_hovered
- Boolescher Wert. „True“, wenn dieses Element verwendet wird, wenn der Mauszeiger auf das Objekt bewegt wird. „false“, wenn das Element im Standardstatus verwendet wird, bei dem der Mauszeiger nicht bewegt wird. Oftmals kann es sich bei diesem Drawable um dasselbe Drawable handeln, das für den Status „Focus“ (fokussiert) verwendet wurde.
Eingeführt in API-Level 14.
android:state_selected
- Boolescher Wert. „True“, wenn dieses Element verwendet wird, wenn das Objekt der aktuellen Nutzerauswahl entspricht, wenn Sie mit einer Richtungssteuerung navigieren, z. B. beim Navigieren durch eine Liste mit einem Steuerkreuz; „false“, wenn dieses Element verwendet wird, wenn das Objekt nicht ausgewählt ist.
Der ausgewählte Status wird verwendet, wenn android:state_focused
nicht ausreicht, z. B. wenn der Fokus auf der Listenansicht liegt und ein darin enthaltenes Element mit einem Steuerkreuz ausgewählt wird.
android:state_checkable
- Boolescher Wert. „True“, wenn dieses Element verwendet wird, wenn das Objekt auswählbar ist, und „false“, wenn es verwendet wird, wenn das Objekt nicht auswählbar ist. Nur nützlich, wenn das Objekt zwischen einem auswählbaren und einem nicht auswählbaren Widget wechseln kann.
android:state_checked
- Boolescher Wert. „True“, wenn dieses Element verwendet wird, wenn das Objekt ausgewählt ist, und „false“, wenn es verwendet wird, wenn das Objekt nicht ausgewählt ist.
android:state_enabled
- Boolescher Wert. "True", wenn dieses Element bei aktiviertem Objekt verwendet wird und somit Touch- oder Klickereignisse empfangen kann. "false", wenn es bei deaktiviertem Objekt verwendet wird.
android:state_activated
- Boolescher Wert. „True“, wenn dieses Element verwendet wird, wenn das Objekt als persistente Auswahl aktiviert wird, z. B. um das zuvor ausgewählte Listenelement in einer persistenten Navigationsansicht „hervorzuheben“; „false“, wenn es verwendet wird, wenn das Objekt nicht aktiviert ist.
Eingeführt in API-Level 11.
android:state_window_focused
- Boolescher Wert. „True“, wenn dieses Element verwendet wird, wenn das Anwendungsfenster im Fokus ist, die Anwendung also im Vordergrund ausgeführt wird. „false“, wenn dieses Element verwendet wird, wenn das Anwendungsfenster nicht im Fokus ist, z. B. wenn die Benachrichtigungsleiste nach unten gezogen wird oder ein Dialogfeld angezeigt wird.
Hinweis:Android wendet das erste Element in der Statusliste an, das dem aktuellen Status des Objekts entspricht. Wenn also das erste Element in der Liste keines der vorherigen Statusattribute enthält, wird es jedes Mal angewendet. Aus diesem Grund soll der Standardwert immer der letzte sein, wie im folgenden Beispiel gezeigt.
- Beispiel:
- XML-Datei gespeichert unter
res/drawable/button.xml
:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="@drawable/button_pressed" /> <!-- pressed -->
<item android:state_focused="true"
android:drawable="@drawable/button_focused" /> <!-- focused -->
<item android:state_hovered="true"
android:drawable="@drawable/button_focused" /> <!-- hovered -->
<item android:drawable="@drawable/button_normal" /> <!-- default -->
</selector>
Diese Layout-XML wendet das Drawable der Statusliste auf eine Schaltfläche an:
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:background="@drawable/button" />
- Siehe auch:
-
Levelliste
Ein Drawable, das eine Anzahl alternativer Drawables verwaltet, jedem mit einem maximalen numerischen Wert zugewiesen ist. Wenn du den Levelwert des Drawable mit setLevel()
festlegst, wird die Drawable-Ressource in der Ebenenliste geladen, deren android:maxLevel
-Wert größer oder gleich dem an die Methode übergebenen Wert ist.
- Dateispeicherort:
res/drawable/filename.xml
Der Dateiname ist die Ressourcen-ID.
- kompilierter Ressourcentyp:
- Ressourcenverweis auf eine
LevelListDrawable
- Ressourcenreferenz:
-
In Java:
R.drawable.filename
In XML: @[package:]drawable/filename
- Syntax:
-
<?xml version="1.0" encoding="utf-8"?>
<level-list
xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:drawable="@drawable/drawable_resource"
android:maxLevel="integer"
android:minLevel="integer" />
</level-list>
- Elemente:
-
<level-list>
- Erforderlich. Dies muss das Stammelement sein. Enthält ein oder mehrere
<item>
-Elemente.
Attribute:
xmlns:android
- String Erforderlich. Definiert den XML-Namespace. Dieser muss
"http://schemas.android.com/apk/res/android"
sein.
<item>
- Definiert ein Drawable, das auf einer bestimmten Ebene verwendet werden soll.
Attribute:
android:drawable
- Drawable-Ressource. Erforderlich. Verweis auf eine Drawable-Ressource,
die eingefügt werden soll.
android:maxLevel
- Ganzzahl. Die maximal zulässige Stufe für dieses Element.
android:minLevel
- Ganzzahl. Das ist die niedrigste zulässige Stufe für dieses Element.
- Beispiel:
-
<?xml version="1.0" encoding="utf-8"?>
<level-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:drawable="@drawable/status_off"
android:maxLevel="0" />
<item
android:drawable="@drawable/status_on"
android:maxLevel="1" />
</level-list>
Nachdem dies auf ein View
angewendet wurde, kann die Ebene mit setLevel()
oder setImageLevel()
geändert werden.
- Siehe auch:
-
Drawable mit Übergang
Ein TransitionDrawable
ist ein Drawable-Objekt, das zwischen zwei anderen Drawable-Ressourcen überblenden kann.
Jedes Drawable wird durch ein <item>
-Element innerhalb eines einzelnen <transition>
-Elements dargestellt. Es werden maximal zwei Elemente unterstützt. Rufen Sie zum Weiterleiten startTransition()
auf. Rufen Sie reverseTransition()
auf, um rückwärts zu wechseln.
- Dateispeicherort:
res/drawable/filename.xml
Der Dateiname ist die Ressourcen-ID.
- kompilierter Ressourcentyp:
- Ressourcenverweis auf eine
TransitionDrawable
- Ressourcenreferenz:
-
In Java:
R.drawable.filename
In XML: @[package:]drawable/filename
- Syntax:
-
<?xml version="1.0" encoding="utf-8"?>
<transition
xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:drawable="@[package:]drawable/drawable_resource"
android:id="@[+][package:]id/resource_name"
android:top="dimension"
android:right="dimension"
android:bottom="dimension"
android:left="dimension" />
</transition>
- Elemente:
-
<transition>
- Erforderlich. Dies muss das Stammelement sein. Enthält ein oder mehrere
<item>
-Elemente.
Attribute:
xmlns:android
- String Erforderlich. Definiert den XML-Namespace. Dieser muss
"http://schemas.android.com/apk/res/android"
sein.
<item>
- Definiert ein Drawable, das als Teil des Drawable-Übergangs verwendet werden soll.
Muss einem
<transition>
-Element untergeordnet sein. Akzeptiert untergeordnete <bitmap>
-Elemente.
Attribute:
android:drawable
- Drawable-Ressource. Erforderlich. Verweis auf eine Drawable-Ressource.
android:id
- Ressourcen-ID. Eine eindeutige Ressourcen-ID für dieses Drawable. Verwenden Sie das Formular
"@+id/name"
, um eine neue Ressourcen-ID für dieses Element zu erstellen. Das Plus-Symbol zeigt an, dass dies als neue ID erstellt wurde. Du kannst diese ID verwenden, um das Drawable mit View.findViewById()
oder Activity.findViewById()
abzurufen und zu ändern.
android:top
- Ganzzahl. Der obere Offset in Pixeln.
android:right
- Ganzzahl. Der rechte Offset in Pixeln.
android:bottom
- Ganzzahl. Der untere Offset in Pixeln.
android:left
- Ganzzahl. Der linke Offset in Pixeln.
- Beispiel:
- XML-Datei gespeichert unter
res/drawable/transition.xml
:
<?xml version="1.0" encoding="utf-8"?>
<transition xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/on" />
<item android:drawable="@drawable/off" />
</transition>
Diese Layout-XML wendet das Drawable auf eine Ansicht an:
<ImageButton
android:id="@+id/button"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:src="@drawable/transition" />
Und der folgende Code führt einen 500-ms-Übergang vom ersten zum zweiten Element aus:
Kotlin
val button: ImageButton = findViewById(R.id.button)
val drawable: Drawable = button.drawable
if (drawable is TransitionDrawable) {
drawable.startTransition(500)
}
Java
ImageButton button = (ImageButton) findViewById(R.id.button);
Drawable drawable = button.getDrawable();
if (drawable instanceof TransitionDrawable) {
((TransitionDrawable) drawable).startTransition(500);
}
- Siehe auch:
-
Inset-Drawable
Ein in XML definiertes Drawable, das ein anderes Drawable um eine bestimmte Entfernung einfügt. Dies ist nützlich, wenn eine Ansicht einen Hintergrund benötigt, der kleiner als die tatsächlichen Begrenzungen der Ansicht ist.
- Dateispeicherort:
res/drawable/filename.xml
Der Dateiname ist die Ressourcen-ID.
- kompilierter Ressourcentyp:
- Ressourcenverweis auf eine
InsetDrawable
- Ressourcenreferenz:
-
In Java:
R.drawable.filename
In XML: @[package:]drawable/filename
- Syntax:
-
<?xml version="1.0" encoding="utf-8"?>
<inset
xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/drawable_resource"
android:insetTop="dimension"
android:insetRight="dimension"
android:insetBottom="dimension"
android:insetLeft="dimension" />
- Elemente:
-
<inset>
- Erforderlich. Definiert das Inset-Drawable. Dies muss das Stammelement sein.
Attribute:
xmlns:android
- String Erforderlich. Definiert den XML-Namespace. Dieser muss
"http://schemas.android.com/apk/res/android"
sein.
android:drawable
- Drawable-Ressource. Erforderlich. Verweis auf eine Drawable-Ressource,
die eingefügt werden soll.
android:insetTop
- Dimension: Den obersten Bereich als Dimensionswert oder Dimensionsressource.
android:insetRight
- Dimension: Den rechten Teil, als Dimensionswert oder Dimensionsressource.
android:insetBottom
- Dimension: Den unteren Bereich als Dimensionswert oder Dimensionsressource.
android:insetLeft
- Dimension: Linker Eintrag als Dimensionswert oder Dimensionsressource.
- Beispiel:
-
<?xml version="1.0" encoding="utf-8"?>
<inset xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/background"
android:insetTop="10dp"
android:insetLeft="10dp" />
- Siehe auch:
-
Clip-Drawable
Ein in XML definiertes Drawable, das ein anderes Drawable basierend auf dem aktuellen Level dieses Drawables zuschneidet. Sie können festlegen, in welchem Umfang die Breite und Höhe des untergeordneten Drawable je nach Etage abgeschnitten werden sollen. Außerdem lässt sich anhand der Schwerkraft steuern, wo es im Gesamtcontainer platziert wird. am häufigsten zur Implementierung
von Fortschrittsbalken.
- Dateispeicherort:
res/drawable/filename.xml
Der Dateiname ist die Ressourcen-ID.
- kompilierter Ressourcentyp:
- Ressourcenverweis auf eine
ClipDrawable
- Ressourcenreferenz:
-
In Java:
R.drawable.filename
In XML: @[package:]drawable/filename
- Syntax:
-
<?xml version="1.0" encoding="utf-8"?>
<clip
xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/drawable_resource"
android:clipOrientation=["horizontal" | "vertical"]
android:gravity=["top" | "bottom" | "left" | "right" | "center_vertical" |
"fill_vertical" | "center_horizontal" | "fill_horizontal" |
"center" | "fill" | "clip_vertical" | "clip_horizontal"] />
- Elemente:
-
<clip>
- Erforderlich. Legt das Drawable für den Clip fest. Dies muss das Stammelement sein.
Attribute:
xmlns:android
- String Erforderlich. Definiert den XML-Namespace. Dieser muss
"http://schemas.android.com/apk/res/android"
sein.
android:drawable
- Drawable-Ressource. Erforderlich. Verweis auf eine Drawable-Ressource,
die abgeschnitten werden soll.
android:clipOrientation
- Keyword. Die Ausrichtung des Clips.
Muss einer der folgenden konstanten Werte sein:
Antwort | Beschreibung |
horizontal |
Schneiden Sie das Drawable horizontal zu. |
vertical |
Befestige das Drawable vertikal. |
android:gravity
- Keyword. Gibt an, wo im Drawable ein Clip eingefügt werden soll.
Muss einer oder mehrere der folgenden konstanten Werte sein, getrennt durch |
:
Antwort | Beschreibung |
top |
Platzieren Sie das Objekt oben in seinem Container, ohne seine Größe zu ändern. Wenn clipOrientation auf "vertical" gesetzt ist, wird das Element am unteren Rand des Drawables abgeschnitten. |
bottom |
Lege das Objekt auf den Boden des Behälters, ohne seine Größe zu ändern. Wenn clipOrientation auf "vertical" gesetzt ist, wird das Element oben im Drawable abgeschnitten. |
left |
Platzieren Sie das Objekt am linken Rand des Containers, ohne seine Größe zu ändern. Das ist die Standardeinstellung. Wenn clipOrientation den Wert "horizontal" hat, erfolgt das Abschneiden auf der rechten Seite des Drawables. |
right |
Platzieren Sie das Objekt am rechten Rand des Containers, ohne seine Größe zu ändern. Wenn clipOrientation den Wert "horizontal" hat, erfolgt das Abschneiden auf der linken Seite des Drawables. |
center_vertical |
Platzieren Sie das Objekt vertikal mittig in seinem Container, ohne seine Größe zu ändern. Beschneidung funktioniert genauso wie die Schwerkraft bei "center" . |
fill_vertical |
Vergrößern Sie bei Bedarf die vertikale Größe des Objekts, damit es seinen Behälter vollständig ausfüllt. Wenn clipOrientation auf "vertical" gesetzt ist, erfolgt kein Clipping, da das Drawable den vertikalen Bereich ausfüllt (es sei denn, die Drawable-Ebene ist 0 – in diesem Fall ist es nicht sichtbar). |
center_horizontal |
Platzieren Sie das Objekt horizontal mittig in seinem Container, ohne seine Größe zu ändern.
Beschneidung funktioniert genauso wie die Schwerkraft bei "center" . |
fill_horizontal |
Vergrößern Sie bei Bedarf die horizontale Größe des Objekts, damit es seinen Behälter vollständig ausfüllt. Wenn clipOrientation auf "horizontal" gesetzt ist, erfolgt keine Begrenzung, weil das Drawable den horizontalen Bereich ausfüllt (es sei denn, die Drawable-Ebene ist 0, sodass sie nicht sichtbar ist).
|
center |
Platzieren Sie das Objekt sowohl in der vertikalen als auch in der horizontalen Achse in der Mitte seines Containers, ohne seine Größe zu ändern. Wenn clipOrientation den Wert "horizontal" hat, erfolgt die Begrenzung links und rechts. Wenn clipOrientation den Wert "vertical" hat, wird oben und unten abgeschnitten. |
fill |
Vergrößern Sie bei Bedarf die horizontale und vertikale Größe des Objekts, damit es seinen Container vollständig füllt. Es erfolgt keine Beschneidung, da das Drawable den horizontalen und vertikalen Raum ausfüllt (es sei denn, die Ebene für das Drawable ist 0 und ist dann nicht sichtbar). |
clip_vertical |
Zusätzliche Option, die so festgelegt werden kann, dass der obere und/oder untere Rand des untergeordneten Elements an die Containergrenzen begrenzt wird. Der Clip basiert auf der vertikalen Schwerkraft: Eine obere Gravitation schneidet den unteren Rand, eine untere Schwerkraft am oberen Rand ab und keine an beiden Kanten.
|
clip_horizontal |
Zusätzliche Option, die so festgelegt werden kann, dass der linke und/oder rechte Rand des untergeordneten Elements an seine Containergrenzen begrenzt wird. Der Clip basiert auf der horizontalen Gravitation: Eine linke Gravitation schließt die rechte Kante, eine rechte Gravitation an der linken Kante ab, aber keiner der Clips wird an beiden Kanten abgeschnitten.
|
- Beispiel:
- XML-Datei gespeichert unter
res/drawable/clip.xml
:
<?xml version="1.0" encoding="utf-8"?>
<clip xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/android"
android:clipOrientation="horizontal"
android:gravity="left" />
Mit der folgenden Layout-XML wird das Drawable-Format des Clips auf eine Ansicht angewendet:
<ImageView
android:id="@+id/image"
android:src="@drawable/clip"
android:layout_height="wrap_content"
android:layout_width="wrap_content" />
Mit dem folgenden Code wird das Drawable abgerufen und das Abschneiden erhöht, um das Bild schrittweise einzublenden:
Kotlin
val imageview: ImageView = findViewById(R.id.image)
val drawable: Drawable = imageview.background
if (drawable is ClipDrawable) {
drawable.level = drawable.level + 1000
}
Java
ImageView imageview = (ImageView) findViewById(R.id.image);
Drawable drawable = imageview.getBackground();
if (drawable instanceof ClipDrawable) {
((ClipDrawable)drawable).setLevel(drawable.getLevel() + 1000);
}
Je höher der Pegel, desto weniger Beschnitt wird reduziert und das Bild wird langsam sichtbar. Hier ist es auf einer Ebene von 7.000:
Hinweis:Die Standardebene ist 0. Dieser Wert wird vollständig zugeschnitten, sodass das Bild nicht sichtbar ist. Bei einer Stufe von 10.000 wird das Bild nicht zugeschnitten und ist vollständig sichtbar.
- Siehe auch:
-
Drawable skalieren
Ein in XML definiertes Drawable, das die Größe eines anderen Drawable basierend auf dessen aktueller Ebene ändert.
- Dateispeicherort:
res/drawable/filename.xml
Der Dateiname ist die Ressourcen-ID.
- kompilierter Ressourcentyp:
- Ressourcenverweis auf eine
ScaleDrawable
- Ressourcenreferenz:
-
In Java:
R.drawable.filename
In XML: @[package:]drawable/filename
- Syntax:
-
<?xml version="1.0" encoding="utf-8"?>
<scale
xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/drawable_resource"
android:scaleGravity=["top" | "bottom" | "left" | "right" | "center_vertical" |
"fill_vertical" | "center_horizontal" | "fill_horizontal" |
"center" | "fill" | "clip_vertical" | "clip_horizontal"]
android:scaleHeight="percentage"
android:scaleWidth="percentage" />
- Elemente:
-
<scale>
- Erforderlich. Definiert das Scale-Drawable. Dies muss das Stammelement sein.
Attribute:
xmlns:android
- String Erforderlich. Definiert den XML-Namespace. Dieser muss
"http://schemas.android.com/apk/res/android"
sein.
android:drawable
- Drawable-Ressource. Erforderlich. Verweis auf eine Drawable-Ressource.
android:scaleGravity
- Keyword. Gibt die Gravitationsposition nach der Skalierung an.
Muss einer oder mehrere der folgenden konstanten Werte sein, getrennt durch |
:
Antwort | Beschreibung |
top |
Platzieren Sie das Objekt oben in seinem Container, ohne seine Größe zu ändern. |
bottom |
Lege das Objekt auf den Boden des Behälters, ohne seine Größe zu ändern. |
left |
Platzieren Sie das Objekt am linken Rand des Containers, ohne seine Größe zu ändern. Das ist die Standardeinstellung. |
right |
Platzieren Sie das Objekt am rechten Rand des Containers, ohne seine Größe zu ändern. |
center_vertical |
Platzieren Sie das Objekt vertikal mittig in seinem Container, ohne seine Größe zu ändern. |
fill_vertical |
Vergrößern Sie bei Bedarf die vertikale Größe des Objekts, damit es seinen Behälter vollständig ausfüllt. |
center_horizontal |
Platzieren Sie das Objekt horizontal mittig in seinem Container, ohne seine Größe zu ändern. |
fill_horizontal |
Vergrößern Sie bei Bedarf die horizontale Größe des Objekts, damit es seinen Behälter vollständig ausfüllt.
|
center |
Platzieren Sie das Objekt sowohl in der vertikalen als auch in der horizontalen Achse in der Mitte seines Containers, ohne seine Größe zu ändern. |
fill |
Vergrößern Sie bei Bedarf die horizontale und vertikale Größe des Objekts, damit es seinen Container vollständig füllt. |
clip_vertical |
Zusätzliche Option, die so festgelegt werden kann, dass der obere und/oder untere Rand des untergeordneten Elements an die Containergrenzen begrenzt wird. Der Clip basiert auf der vertikalen Schwerkraft: Eine obere Gravitation schneidet den unteren Rand, eine untere Schwerkraft am oberen Rand ab und keine an beiden Kanten.
|
clip_horizontal |
Zusätzliche Option, die so festgelegt werden kann, dass der linke und/oder rechte Rand des untergeordneten Elements an seine Containergrenzen begrenzt wird. Der Clip basiert auf der horizontalen Gravitation: Eine linke Gravitation schließt die rechte Kante, eine rechte Gravitation an der linken Kante ab, aber keiner der Clips wird an beiden Kanten abgeschnitten.
|
android:scaleHeight
- Prozentsatz. Die Skalierungshöhe, ausgedrückt als Prozentsatz der Drawable-Grenze. Das Format des Werts ist XX%, z. B. 100% oder 12,5%.
android:scaleWidth
- Prozentsatz. Die Skalierungsbreite, ausgedrückt als Prozentsatz der Drawable-Grenze. Das Format des Werts ist XX%, z. B. 100% oder 12,5%.
- Beispiel:
-
<?xml version="1.0" encoding="utf-8"?>
<scale xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/logo"
android:scaleGravity="center_vertical|center_horizontal"
android:scaleHeight="80%"
android:scaleWidth="80%" />
- Siehe auch:
-
Form-Drawable
Dies ist eine generische Form, die in XML definiert ist.
- Dateispeicherort:
res/drawable/filename.xml
Der Dateiname ist die Ressourcen-ID.
- kompilierter Ressourcentyp:
- Ressourcenverweis auf eine
GradientDrawable
- Ressourcenreferenz:
-
In Java:
R.drawable.filename
In XML: @[package:]drawable/filename
- Syntax:
-
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape=["rectangle" | "oval" | "line" | "ring"] >
<corners
android:radius="integer"
android:topLeftRadius="integer"
android:topRightRadius="integer"
android:bottomLeftRadius="integer"
android:bottomRightRadius="integer" />
<gradient
android:angle="integer"
android:centerX="float"
android:centerY="float"
android:centerColor="integer"
android:endColor="color"
android:gradientRadius="integer"
android:startColor="color"
android:type=["linear" | "radial" | "sweep"]
android:useLevel=["true" | "false"] />
<padding
android:left="integer"
android:top="integer"
android:right="integer"
android:bottom="integer" />
<size
android:width="integer"
android:height="integer" />
<solid
android:color="color" />
<stroke
android:width="integer"
android:color="color"
android:dashWidth="integer"
android:dashGap="integer" />
</shape>
- Elemente:
-
<shape>
- Erforderlich. Das Drawable-Format Dies muss das Stammelement sein.
Attribute:
xmlns:android
- String Erforderlich. Definiert den XML-Namespace. Dieser muss
"http://schemas.android.com/apk/res/android"
sein.
android:shape
- Keyword. Definiert den Formtyp. Gültige Werte sind folgende:
Antwort | Beschreibung |
"rectangle" |
Ein Rechteck, das die enthaltende Ansicht ausfüllt. Das ist die Standardform. |
"oval" |
Eine ovale Form, die den Abmessungen der enthaltenden Ansicht entspricht. |
"line" |
Eine horizontale Linie, die die Breite der enthaltenden Ansicht einnimmt. Für diese Form muss das Element <stroke> die Breite der Linie definieren. |
"ring" |
Eine Ringform. |
Die folgenden Attribute werden nur verwendet, wenn android:shape="ring"
:
android:innerRadius
- Dimension: Der Radius für den inneren Teil des Rings (das Loch in der Mitte) als Dimensionswert oder Dimensionsressource.
android:innerRadiusRatio
- Gleitkommazahl. Der Radius für den inneren Teil des Rings, ausgedrückt als Verhältnis der Breite des Rings. Wenn beispielsweise
android:innerRadiusRatio="5"
festgelegt ist, entspricht der innere Radius der Breite des Rings geteilt durch 5. Dieser Wert wird von android:innerRadius
überschrieben. Der Standardwert ist 9.
android:thickness
- Dimension: Die Dicke des Rings als Dimensionswert oder als Dimensionsressource.
android:thicknessRatio
- Gleitkommazahl. Die Dicke des Rings, ausgedrückt als Verhältnis zur Breite des Rings. Bei
android:thicknessRatio="2"
entspricht die Dicke beispielsweise der Breite des Rings geteilt durch 2. Dieser Wert wird durch android:innerRadius
überschrieben. Der Standardwert ist 3.
android:useLevel
- Boolescher Wert. „True“, wenn dies als
LevelListDrawable
verwendet wird. Dies ist normalerweise falsch, andernfalls wird die Form möglicherweise nicht angezeigt.
<corners>
- Erstellt abgerundete Ecken für die Form. Gilt nur, wenn die Form ein Rechteck ist.
Attribute:
android:radius
- Dimension: Der Radius für alle Ecken als Dimensionswert oder Dimensionsressource. Dies wird für jede Ecke durch die folgenden Attribute überschrieben.
android:topLeftRadius
- Dimension: Der Radius der oberen linken Ecke als Dimensionswert oder Dimensionsressource.
android:topRightRadius
- Dimension: Der Umkreis für die obere rechte Ecke als Dimensionswert oder Dimensionsressource.
android:bottomLeftRadius
- Dimension: Der Radius der linken unteren Ecke als Dimensionswert oder Dimensionsressource.
android:bottomRightRadius
- Dimension: Der Radius der unteren rechten Ecke als Dimensionswert oder Dimensionsressource
Hinweis:Für jede Ecke muss zuerst ein Eckenradius festgelegt werden, der größer als 1 ist. Andernfalls werden keine Ecken abgerundet. Wenn bestimmte Ecken nicht abgerundet werden sollen, können Sie das Problem umgehen. Legen Sie dazu mit android:radius
einen Standardeckradius fest, der größer als 1 ist, und überschreiben Sie dann alle Ecken mit den gewünschten Werten (0 dp), wenn keine abgerundeten Ecken gewünscht werden.
<gradient>
- Gibt einen Farbverlauf für die Form an.
Attribute:
android:angle
- Ganzzahl. Der Winkel für den Farbverlauf in Grad. 0 bedeutet von links nach
rechts, 90 bedeutet von unten nach oben. Er muss ein Vielfaches von 45 sein. Der Standardwert ist 0.
android:centerX
- Gleitkommazahl. Die relative X-Position für den Mittelpunkt des Gradienten (0–1,0).
android:centerY
- Gleitkommazahl. Die relative Y-Position für den Mittelpunkt des Farbverlaufs (0–1,0).
android:centerColor
- Farbe: Optionale Farbe als Hexadezimalwert oder Farbressource, die zwischen den Start- und Endfarben steht.
android:endColor
- Farbe: Die Endfarbe als Hexadezimalwert oder als Farbressource.
android:gradientRadius
- Gleitkommazahl. Der Radius des Farbverlaufs. Nur angewendet, wenn
android:type="radial"
.
android:startColor
- Farbe: Die Ausgangsfarbe als Hexadezimalwert oder Farbressource.
android:type
- Keyword. Die Art des anzuwendenden Farbverlaufsmusters. Gültige Werte sind folgende:
Antwort | Beschreibung |
"linear" |
Ein linearer Farbverlauf. Das ist die Standardeinstellung. |
"radial" |
Ein radialer Farbverlauf. Die Anfangsfarbe ist die Farbe in der Mitte. |
"sweep" |
Ein überfliegender Linienverlauf. |
android:useLevel
- Boolescher Wert. „True“, wenn dies als
LevelListDrawable
verwendet wird.
<padding>
- Abstand, der auf das enthaltende Ansichtselement angewendet werden soll. Dadurch wird die Position des Ansichtsinhalts
aufgefüllt, nicht die Form.
Attribute:
android:left
- Dimension: Linker Innenrand, als Dimensionswert oder Dimensionsressource.
android:top
- Dimension: Abstand oben, als Dimensionswert oder Dimensionsressource
android:right
- Dimension: Abstand rechts, als Dimensionswert oder Dimensionsressource
android:bottom
- Dimension: Abstand unten, als Dimensionswert oder Dimensionsressource
<size>
- Die Größe der Form.
Attribute:
android:height
- Dimension: Die Höhe der Form als Dimensionswert oder Dimensionsressource.
android:width
- Dimension: Die Breite der Form als Dimensionswert oder Dimensionsressource.
Hinweis:Standardmäßig wird die Form proportional zu den hier definierten Abmessungen auf die Größe der Containeransicht skaliert. Wenn Sie die Form in einer ImageView
verwenden, können Sie die Skalierung einschränken, indem Sie android:scaleType
auf "center"
setzen.
<solid>
- Eine Volltonfarbe zum Füllen der Form.
Attribute:
android:color
- Farbe: Die Farbe, die auf die Form angewendet werden soll, als Hexadezimalwert oder als Farbressource.
<stroke>
- Eine Strichlinie für die Form.
Attribute:
android:width
- Dimension: Die Linienstärke als Dimensionswert oder Dimensionsressource.
android:color
- Farbe: Die Farbe der Linie als Hexadezimalwert oder als Farbressource.
android:dashGap
- Dimension: Der Abstand zwischen Linienstrichen als Dimensionswert oder Dimensionsressource. Nur gültig, wenn
android:dashWidth
festgelegt ist.
android:dashWidth
- Dimension: Die Größe der einzelnen Strichlinien als Dimensionswert oder Dimensionsressource. Nur gültig, wenn
android:dashGap
festgelegt ist.
- Beispiel:
- XML-Datei gespeichert unter
res/drawable/gradient_box.xml
:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:startColor="#FFFF0000"
android:endColor="#80FF00FF"
android:angle="45"/>
<padding android:left="7dp"
android:top="7dp"
android:right="7dp"
android:bottom="7dp" />
<corners android:radius="8dp" />
</shape>
Diese Layout-XML-Datei wendet das Drawable-Objekt auf eine Ansicht an:
<TextView
android:background="@drawable/gradient_box"
android:layout_height="wrap_content"
android:layout_width="wrap_content" />
Mit diesem Anwendungscode wird das Drawable der Form abgerufen und auf eine Ansicht angewendet:
Kotlin
val shape: Drawable? = getDrawable
(resources
, R.drawable.gradient_box, getTheme()
)
val tv: TextView = findViewById(R.id.textview)
tv.background = shape
Java
Resources res = getResources()
;
Drawable shape = ResourcesCompat.getDrawable
(res, R.drawable.gradient_box, getTheme()
);
TextView tv = (TextView)findViewById(R.id.textview);
tv.setBackground(shape);
- Siehe auch:
-