Eine Drawable-Ressource ist ein allgemeines Konzept für eine Grafik, die auf dem Bildschirm gezeichnet werden kann
die Sie mit APIs wie getDrawable(int)
abrufen oder anwenden können
in eine andere XML-Ressource mit Attributen wie android:drawable
und android:icon
.
Es gibt verschiedene Arten von Drawables:
- Bitmap-Datei
-
- Eine Bitmapgrafikdatei (PNG, WEBP, JPG oder GIF)
Erstellt ein
BitmapDrawable
.
- Neun-Patch-Datei
- Eine PNG-Datei mit dehnbaren Bereichen, damit die Größe von Bildern je nach Inhalt angepasst werden kann (
.9.png
). Erstellt eine NinePatchDrawable
.
- Ebenenliste
- Ein Drawable, das ein Array anderer Drawables verwaltet. Diese werden in Array-Reihenfolge gezeichnet,
-Element mit dem größten Index wird oben gezeichnet. Erstellt ein
LayerDrawable
.
- Liste der Bundesstaaten
- Eine XML-Datei, die auf verschiedene Bitmapgrafiken verweist
für verschiedene Zustände, z. B. um ein anderes Bild zu verwenden, wenn auf eine Schaltfläche getippt wird.
Erstellt ein
StateListDrawable
.
- Levelliste
- Eine XML-Datei, die ein Drawable definiert, das eine Reihe von alternativen Drawables verwaltet, von denen jedes
mit einem numerischen Höchstwert. Erstellt ein
LevelListDrawable
.
- Übergangs-Drawable
- Eine XML-Datei, die ein Drawable definiert, das zwischen zwei Drawable-Ressourcen überblenden kann.
Erstellt ein
TransitionDrawable
.
- Eingefügtes Drawable
- Eine XML-Datei, die ein Drawable definiert, das ein anderes Drawable um eine bestimmte Entfernung einfügt.
Dies ist nützlich, wenn für eine Ansicht ein Hintergrund-Drawable benötigt wird, das kleiner als das tatsächliche
Grenzen festzulegen.
- Clip-Drawable
- Eine XML-Datei, mit der ein Drawable definiert wird, mit dem ein anderes Drawable basierend auf diesem Drawable zugeschnitten wird
Aktueller Levelwert. Erstellt ein
ClipDrawable
.
- Scale-Drawable
- Eine XML-Datei, die ein Drawable definiert, das die Größe eines anderen Drawable-Elements basierend auf seinem
Aktueller Levelwert. Erstellt:
ScaleDrawable
- Form-Drawable
- Eine XML-Datei, die eine geometrische Form einschließlich Farben und Farbverläufen definiert.
Erstellt ein
GradientDrawable
.
Informationen zur
AnimationDrawable
erstellen,
Weitere Informationen finden Sie im Dokument Animationsressourcen.
Hinweis: Eine Farbressource kann auch als
in XML als Drawable verwendet. Zum Beispiel können Sie beim Erstellen einer Liste mit Bundesstaaten/-ländern
Drawable kannst du auf eine Farbressource für das android:drawable
-Attribut (android:drawable="@color/green"
) verweisen.
Bitmap
Ein Bitmapbild. Android unterstützt Bitmapdateien 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, indem Sie den Dateinamen als Ressourcen-ID verwenden, oder ein
Alias-Ressourcen-ID in XML.
Hinweis:Bitmapdateien werden eventuell automatisch mit einer verlustfreien
Image-Komprimierung durch das aapt
-Tool während des Build-Prozesses. Für
Eine echte Farbpalette, die nicht mehr als 256 Farben erfordert, kann in ein 8-Bit-Format konvertiert werden.
PNG mit Farbpalette. Dies führt zu einem Bild von gleicher Qualität, das weniger
zu speichern.
Beachten Sie daher, dass sich die in diesem Verzeichnis abgelegten Image-Binärdateien während des Build-Prozesses ändern können. Wenn
Sie ein Bild als Bitstream lesen, um es in eine Bitmap zu konvertieren, platzieren Sie Ihre Bilder
in den Ordner res/raw/
. Dort sind sie nicht optimiert.
Bitmapdatei
Eine Bitmapdatei ist eine PNG-, WEBP-, JPG- oder GIF-Datei. Android erstellt ein Drawable
Ressource für jede dieser Dateien, wenn Sie sie im Verzeichnis res/drawable/
speichern.
- Dateispeicherort:
res/drawable/filename.png
(.png
, .webp
, .jpg
oder .gif
)
Der Dateiname ist die Ressourcen-ID.
- Datentyp der kompilierten Ressource:
- Ressourcenzeiger auf ein
BitmapDrawable
- Ressourcenreferenz:
-
In Java:
R.drawable.filename
XML: @[package:]drawable/filename
- Beispiel:
- Wenn ein Bild unter
res/drawable/myimage.png
gespeichert ist, wird diese Layout-XML-Datei angewendet.
das Bild in eine Ansicht:
<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 in XML definierte Ressource, die auf eine Bitmapdatei verweist. Der Effekt ist ein Alias für
Bitmap-Rohdatei. 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 von verwenden.
Ein <item>
-Element. Für
Wenn Sie beispielsweise eine Statusliste oder Ebenenliste erstellen,
können Sie die android:drawable
ausschließen.
eines <item>
-Elements und verschachteln Sie darin ein <bitmap>
-Element
, der das Drawable-Element definiert.
- Dateispeicherort:
res/drawable/filename.xml
Der Dateiname ist die Ressourcen-ID.
- Datentyp der kompilierten Ressource:
- Ressourcenzeiger auf ein
BitmapDrawable
- Ressourcenreferenz:
-
In Java:
R.drawable.filename
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, der sein muss.
"http://schemas.android.com/apk/res/android"
Dies ist nur erforderlich, wenn der
<bitmap>
ist das Stammelement. Es ist nicht erforderlich, wenn der
<bitmap>
ist in einem <item>
verschachtelt.
android:src
- Drawable resource. Erforderlich. Verweis auf ein Drawable
.
android:antialias
- Boolescher Wert. Aktiviert oder deaktiviert die Kantenglättung.
android:dither
- Boolescher Wert. Aktiviert oder deaktiviert das Dithering der Bitmap, wenn die Bitmap nicht
haben dieselbe Pixelkonfiguration wie der Bildschirm, z. B. eine ARGB-8888-Bitmap bei einer RGB-565-Bitkarte.
Bildschirm.
android:filter
- Boolescher Wert. Aktiviert oder deaktiviert die Bitmapfilterung. Filtern wird verwendet, wenn der
die Bitmap verkleinert oder gestreckt wird, um ihr Erscheinungsbild zu glätten.
android:gravity
- Keyword: Definiert die Schwerkraft für die Bitmap. Die Schwerkraft gibt an, wo
Positioniere das Drawable in seinem Container, wenn die Bitmap kleiner als der Container ist.
Muss einer oder mehrere der folgenden konstanten Werte sein, die durch |
getrennt sind:
Wert | Beschreibung |
top |
Platzieren Sie das Objekt oben auf dem Container, ohne seine Größe zu ändern. |
bottom |
Platzieren Sie das Objekt unten in den Container, ohne seine Größe zu ändern. |
left |
Platzieren Sie das Objekt auf der linken Seite des Behälters, ohne seine Größe zu ändern. |
right |
Platzieren Sie das Objekt auf der rechten Seite des Containers, ohne seine Größe zu ändern. |
center_vertical |
Platzieren Sie das Objekt in der vertikalen Mitte des Containers, ohne seine Größe zu ändern. |
fill_vertical |
Vergrößere das Objekt bei Bedarf vertikal, damit es den 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ößere das Objekt bei Bedarf horizontal, damit es den Behälter vollständig ausfüllt.
|
center |
Platzieren Sie das Objekt sowohl auf der vertikalen als auch auf der horizontalen Achse in der Mitte des Containers, nicht
indem Sie die Größe ändern. |
fill |
Vergrößern Sie die horizontale und vertikale Größe des Objekts, damit es vollständig ausfüllt.
Container. Das ist die Standardeinstellung. |
clip_vertical |
Zusätzliche Option, die festgelegt werden kann, dass der obere und/oder untere Rand des untergeordneten Elements
die Grenzen seines Containers aus. Der Clip basiert auf der vertikalen Schwerkraft:
wird die obere Kante durch eine untere Schwerkraft abgeschnitten, und keiner der beiden hält beide Kanten ab.
|
clip_horizontal |
Zusätzliche Option, die festgelegt werden kann, dass der linke und/oder rechte Rand des untergeordneten Elements
die Grenzen seines Containers aus. Der Clip basiert auf der horizontalen Schwerkraft:
wird die rechte Kante durch die rechte Schwerkraft abgeschnitten. Beide Kanten werden durch keine der 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:
Wert | Beschreibung |
disabled |
Die Bitmap nicht in Kacheln aufteilen. Dies ist der Standardwert. |
clamp |
Die Randfarbe replizieren, wenn der Shader außerhalb seiner ursprünglichen Begrenzungen zieht |
repeat |
Wiederholen Sie das Bild des Shaders horizontal und vertikal. |
mirror |
Wiederholen Sie das Bild des Shaders horizontal und vertikal und wechseln Sie dabei die Spiegelbilder, sodass
benachbarte Bilder immer fließen. |
- 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 Bereiche definieren können.
dass Android skaliert wird, wenn Inhalte innerhalb der Ansicht die normalen Bildgrenzen überschreiten. Ich
Diese Art von Bild wird in der Regel als Hintergrund einer Ansicht zugewiesen, für die mindestens eine Dimension festgelegt ist.
an "wrap_content"
.
Wenn die Ansicht größer wird, um den Inhalt aufzunehmen, wird das 9-Patch-Image
an die Größe der Ansicht angepasst. Ein Beispiel für die Verwendung eines Images mit neun Patches ist die
Hintergrund des standardmäßigen Button
-Widgets von Android verwendet, der bis zu
um den Text (oder das Bild) in die Schaltfläche einzufügen.
Wie bei einer normalen Bitmap können Sie direkt auf eine 9-Patch-Datei verweisen.
oder von einer durch XML definierten Ressource.
Weitere Informationen zum Erstellen einer Neun-Patch-Datei mit dehnbaren Regionen
Siehe Bitmaps mit anpassbarer Größe erstellen (9-Patch-Dateien).
Neun-Patch-Datei
- Dateispeicherort:
res/drawable/filename.9.png
Der Dateiname ist die Ressourcen-ID.
- Datentyp der kompilierten Ressource:
- Ressourcenzeiger auf ein
NinePatchDrawable
- Ressourcenreferenz:
-
In Java:
R.drawable.filename
XML: @[package:]drawable/filename
- Beispiel:
- Mit einem unter
res/drawable/myninepatch.9.png
gespeicherten Bild hat dieses Layout-XML
wendet das Neun-Patch 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 XML-9-Patch ist eine in XML definierte Ressource, die auf eine 9-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.
- Datentyp der kompilierten Ressource:
- Ressourcenzeiger auf ein
NinePatchDrawable
- Ressourcenreferenz:
-
In Java:
R.drawable.filename
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 9-Patch-Quelle und ihre Eigenschaften.
Attribute:
xmlns:android
- String. Erforderlich. Definiert den XML-Namespace, der sein muss.
"http://schemas.android.com/apk/res/android"
android:src
- Drawable resource. Erforderlich. Verweis auf ein Neun-Patch
-Datei.
android:dither
- Boolescher Wert. Aktiviert oder deaktiviert das Dithering der Bitmap, wenn die Bitmap nicht
haben dieselbe Pixelkonfiguration wie der Bildschirm, z. B. eine ARGB-8888-Bitmap bei einer RGB-565-Bitkarte.
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
Liste. 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.
- Datentyp der kompilierten Ressource:
- Ressourcenzeiger auf ein
LayerDrawable
- Ressourcenreferenz:
-
In Java:
R.drawable.filename
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, der sein muss.
"http://schemas.android.com/apk/res/android"
<item>
- Definiert ein Drawable, das im Layer-Drawable an einer durch seine Attribute definierten Position platziert werden soll.
Muss einem
<layer-list>
-Element untergeordnet sein. Nimmt Kind <bitmap>
an
Elemente.
Attribute:
android:drawable
- Drawable resource. Erforderlich. Verweis auf ein Drawable
.
android:id
- Ressourcen-ID. Eine eindeutige Ressourcen-ID für dieses Drawable. So erstellen Sie eine neue Ressource:
ID für diesen Artikel, verwenden Sie das folgende Format:
"@+id/name"
Das Pluszeichen zeigt an, dass dieser
ID. Mit dieser Kennung können Sie
das Drawable mit View.findViewById()
oder Activity.findViewById()
abrufen und ändern.
android:top
- Dimension. Der obere Offset als Dimensionswert oder Dimensionsressource.
android:right
- Dimension. Den rechten Versatz 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 so skaliert, dass sie der Größe der enthaltenden Ansicht entsprechen. Das heißt:
Wenn Sie Ihre Bilder an verschiedenen Positionen in einer Ebenenliste platzieren, kann dies die Ansicht vergrößern
werden einige Bilder entsprechend skaliert.
Um dies zu vermeiden
Skalieren Sie Elemente in der Liste, verwenden Sie ein <bitmap>
-Element innerhalb des <item>
-Elements, um das Drawable anzugeben und die Schwerkraft für etwas festzulegen, das nicht
Skalierung, wie z. B. "center"
. Beispielsweise definiert die folgende <item>
ein Element
das an die Containeransicht angepasst wird:
<item android:drawable="@drawable/image" />
Im folgenden Beispiel wird ein <bitmap>
-Element mit zentriertem Mittelpunkt verwendet, um eine Skalierung zu vermeiden.
Schwerkraft:
<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 das Drawable zu definieren
Ressource für jeden Artikel mit der Schwerkraft "center"
. Dadurch wird sichergestellt, dass keines der Bilder
passen die Größe des Containers an, da die Größenänderung durch die Versatzbilder 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 immer weiter versetzter Bilder:
- Siehe auch:
-
Statusliste
StateListDrawable
ist ein in XML definiertes Drawable-Objekt
die dieselbe Grafik anhand mehrerer Bilder darstellen, je nachdem,
des Objekts. So lässt sich beispielsweise der Status eines Button
-Widgets antippen, fokussieren
oder keines von beiden; Mit einem Drawable für die Statusliste können Sie für jedes
Bundesstaat.
Sie beschreiben die Liste der Bundesstaaten in einer XML-Datei. Jede Grafik wird durch ein <item>
-Element innerhalb eines einzelnen <selector>
-Elements dargestellt. Jeweils <item>
verwendet verschiedene Attribute, um den Zustand zu beschreiben, in dem sie als Grafik für die
Drawable.
Bei jeder Statusänderung wird die Statusliste von oben nach unten durchlaufen. Das erste Element, das
mit dem aktuellen Status übereinstimmt. Die Auswahl basiert nicht auf dem
Übereinstimmung“ sondern das erste Element,
das die Mindestkriterien für den Bundesstaat erfüllt.
- Dateispeicherort:
res/drawable/filename.xml
Der Dateiname ist die Ressourcen-ID.
- Datentyp der kompilierten Ressource:
- Ressourcenzeiger auf ein
StateListDrawable
- Ressourcenreferenz:
-
In Java:
R.drawable.filename
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, der sein muss.
"http://schemas.android.com/apk/res/android"
android:constantSize
- Boolescher Wert. Wahr, wenn die gemeldete interne Größe des Drawables als Status konstant bleibt
Änderungen (die Größe ist das Maximum aller Staaten); falsch, wenn die Größe je nach
den aktuellen Status. Der Standardwert ist „false“.
android:dither
- Boolescher Wert. „True“, um das Dithering der Bitmap zu ermöglichen, wenn die Bitmap nicht dasselbe Pixel hat
Konfiguration entsprechend dem Bildschirm, zum Beispiel eine ARGB-8888-Bitmap auf einem RGB-565-Bildschirm FALSCH für
Dithering deaktivieren. Der Standardwert ist „true“.
android:variablePadding
- Boolescher Wert. "True", wenn sich der Abstand des Drawables basierend auf der aktuellen
ausgewählt haben. "false", wenn der Abstand basierend auf dem maximalen
das Padding aller Bundesstaaten. Für die Aktivierung dieser Funktion müssen Sie sich mit
Layout ausführen, wenn sich der Status ändert. Dies wird oft nicht unterstützt. Der Standardwert ist „false“.
<item>
- Definiert ein Drawable für bestimmte Zustände, wie durch seine Attribute beschrieben. Muss ein
einem
<selector>
-Element untergeordnet ist.
Attribute:
android:drawable
- Drawable resource. Erforderlich. Verweis auf eine Drawable-Ressource.
android:state_pressed
- Boolescher Wert. „True“, wenn dieses Element verwendet wird, wenn auf das Objekt getippt wird, beispielsweise wenn eine Schaltfläche
berührt wird; „false“, wenn dieses Element im Standardzustand ohne Antippen verwendet wird.
android:state_focused
- Boolescher Wert. "True", wenn dieses Element verwendet wird, wenn das Objekt Eingabefokus hat,
z. B. wenn Nutzende eine Texteingabe auswählen; „false“, wenn dieses Element standardmäßig verwendet wird,
nicht fokussiert sein.
android:state_hovered
- Boolescher Wert. "True", wenn dieses Element verwendet wird, wenn der Cursor auf das Objekt bewegt wird
false, wenn dieses Element im Standardzustand ohne Mausbewegung verwendet wird. Häufig
Drawable kann dasselbe Drawable sein, das für den Fokus "Focus" (Fokus) verwendet wird. Bundesstaat.
Wurde in API-Level 14 eingeführt.
android:state_selected
- Boolescher Wert. „True“, wenn dieses Element verwendet wird, wenn das Objekt das aktuelle
Nutzerauswahl bei der Navigation mit einer Richtungskontrolle, 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 in der Listenansicht liegt und ein darin enthaltenes Element mit dem Steuerkreuz ausgewählt wird.
android:state_checkable
- Boolescher Wert. True, wenn dieses Element verwendet wird, wenn das Objekt auswählbar ist; „false“, wenn dies
item wird verwendet, wenn das Objekt nicht auswählbar ist. Nur nützlich, wenn das Objekt
zwischen einem auswählbaren und einem nicht auswählbaren Widget.
android:state_checked
- Boolescher Wert. True, wenn dieses Element bei der Auswahl des Objekts verwendet wird; false, wenn
wird verwendet, wenn das Objekt nicht ausgewählt ist.
android:state_enabled
- Boolescher Wert. True, wenn dieses Element verwendet wird, wenn das Objekt aktiviert ist,
das heißt, in der Lage sind, Touch- oder Click-Events zu empfangen, false, wenn er verwendet wird, wenn das Objekt
deaktiviert.
android:state_activated
- Boolescher Wert. True, wenn dieses Element verwendet wird, wenn das Objekt als aktiviert wird
die dauerhafte Auswahl, z. B. zum Hervorheben das zuvor ausgewählte Listenelement in einer persistenten
Navigationsansicht; false, wenn er verwendet wird, wenn das Objekt nicht aktiviert ist.
Wurde in API-Level 11 eingeführt.
android:state_window_focused
- Boolescher Wert. „True“, wenn dieses Element verwendet wird, wenn das App-Fenster im Fokus ist, d. h.
die Anwendung im Vordergrund ausgeführt wird, "false", wenn dieses Element bei der Anwendung verwendet wird
nicht fokussiert, z. B. wenn die Benachrichtigungsleiste nach unten gezogen oder ein Dialogfeld angezeigt wird.
Hinweis:Android wendet das erste Element in der Bundesstaatenliste an, das
entspricht dem aktuellen Status des Objekts. Wenn also das erste Element in der Liste
keines der vorangehenden Statusattribute, wird es jedes Mal angewendet. Deshalb sollten Sie
immer der letzte Wert 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 die Statusliste Drawable auf eine Schaltfläche an:
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:background="@drawable/button" />
- Siehe auch:
-
Stufenliste
Ein Drawable, das eine Reihe von alternativen Drawables verwaltet, denen jeweils ein maximales numerisches Limit zugewiesen ist
Wert. Wenn du den Levelwert des Drawables mit setLevel()
festlegst, wird die Drawable-Ressource im
Ebenenliste mit einem android:maxLevel
-Wert größer oder gleich dem Wert
an die Methode übergeben.
- Dateispeicherort:
res/drawable/filename.xml
Der Dateiname ist die Ressourcen-ID.
- Datentyp der kompilierten Ressource:
- Ressourcenzeiger auf ein
LevelListDrawable
- Ressourcenreferenz:
-
In Java:
R.drawable.filename
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, der sein muss.
"http://schemas.android.com/apk/res/android"
<item>
- Definiert ein Drawable, das auf einer bestimmten Ebene verwendet werden soll.
Attribute:
android:drawable
- Drawable resource. Erforderlich. Verweis auf ein Drawable
Ressource, die eingefügt werden soll.
android:maxLevel
- Ganzzahl. Die maximal zulässige Stufe für dieses Element.
android:minLevel
- Ganzzahl. Die für diesen Artikel erforderliche Mindeststufe.
- 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>
Sobald dies auf eine View
angewendet wurde, kann die Ebene mit setLevel()
oder setImageLevel()
geändert werden.
- Siehe auch:
-
Übergangs-Drawable
Ein TransitionDrawable
ist ein Drawable-Objekt.
die 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()
Bis
rückwärts gehen, reverseTransition()
aufrufen.
- Dateispeicherort:
res/drawable/filename.xml
Der Dateiname ist die Ressourcen-ID.
- Datentyp der kompilierten Ressource:
- Ressourcenzeiger auf ein
TransitionDrawable
- Ressourcenreferenz:
-
In Java:
R.drawable.filename
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, der sein muss.
"http://schemas.android.com/apk/res/android"
<item>
- Definiert ein Drawable, das als Teil des Drawable-Übergangs verwendet werden soll.
Muss einem
<transition>
-Element untergeordnet sein. Nimmt Kind <bitmap>
an
Elemente.
Attribute:
android:drawable
- Drawable resource. Erforderlich. Verweis auf ein Drawable
.
android:id
- Ressourcen-ID. Eine eindeutige Ressourcen-ID für dieses Drawable. So erstellen Sie eine neue Ressource:
ID für diesen Artikel, verwenden Sie das folgende Format:
"@+id/name"
Das Pluszeichen zeigt an, dass dieser
ID. Mit dieser Kennung können Sie
das Drawable mit View.findViewById()
oder Activity.findViewById()
abrufen und ändern.
android:top
- Ganzzahl. Der obere Offset in Pixeln.
android:right
- Ganzzahl. Der rechte Versatz 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" />
Mit dem folgenden Code erfolgt ein 500-ms-Übergang vom ersten zum zweiten Element:
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:
-
Eingefügtes Drawable
Ein in XML definiertes Drawable, das ein anderes Drawable um eine angegebene Entfernung einfügt. Hilfreich
wenn eine Ansicht einen Hintergrund benötigt, der kleiner als die tatsächlichen Grenzen der Ansicht ist.
- Dateispeicherort:
res/drawable/filename.xml
Der Dateiname ist die Ressourcen-ID.
- Datentyp der kompilierten Ressource:
- Ressourcenzeiger auf ein
InsetDrawable
- Ressourcenreferenz:
-
In Java:
R.drawable.filename
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 eingefügte Drawable. Dies muss das Stammelement sein.
Attribute:
xmlns:android
- String. Erforderlich. Definiert den XML-Namespace, der sein muss.
"http://schemas.android.com/apk/res/android"
android:drawable
- Drawable resource. Erforderlich. Verweis auf ein Drawable
Ressource, die eingefügt werden soll.
android:insetTop
- Dimension. Oberer Einsatzbereich, als Dimensionswert oder Dimensionsressource
android:insetRight
- Dimension. die rechte Einfügung als Dimensionswert oder Dimensionsressource
android:insetBottom
- Dimension. Im unteren Bereich als Dimensionswert oder Dimensionsressource.
android:insetLeft
- Dimension. Linker Einsatz 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 definierter Drawable, mit dem ein anderes Drawable basierend auf der aktuellen Pegel dieses Drawable-Elements zugeschnitten wird. Ich
lässt sich auch steuern, wie weit das untergeordnete Drawable auf Grundlage des Levels an Breite und Höhe abgeschnitten wird.
als Schwerkraft, um zu steuern, wo es im Gesamtbehälter platziert wird. Am häufigsten zur Implementierung
zum Beispiel Fortschrittsbalken.
- Dateispeicherort:
res/drawable/filename.xml
Der Dateiname ist die Ressourcen-ID.
- Datentyp der kompilierten Ressource:
- Ressourcenzeiger auf ein
ClipDrawable
- Ressourcenreferenz:
-
In Java:
R.drawable.filename
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. Definiert das Clip-Drawable. Dies muss das Stammelement sein.
Attribute:
xmlns:android
- String. Erforderlich. Definiert den XML-Namespace, der sein muss.
"http://schemas.android.com/apk/res/android"
android:drawable
- Drawable resource. Erforderlich. Verweis auf ein Drawable
zu kürzende Ressource.
android:clipOrientation
- Keyword: Die Ausrichtung des Clips.
Muss einer der folgenden konstanten Werte sein:
Wert | Beschreibung |
horizontal |
Klemme das Drawable horizontal an. |
vertical |
Befestige das Drawable senkrecht. |
android:gravity
- Keyword: Gibt an, wo innerhalb des Drawables abgeschnitten werden soll.
Muss einer oder mehrere der folgenden konstanten Werte sein, die durch |
getrennt sind:
Wert | Beschreibung |
top |
Platzieren Sie das Objekt oben auf dem Container, ohne seine Größe zu ändern. Wenn clipOrientation den Wert "vertical" hat, erfolgt die Begrenzung unten im Drawable. |
bottom |
Platzieren Sie das Objekt unten in den Container, ohne seine Größe zu ändern. Wenn clipOrientation den Wert "vertical" hat, erfolgt das Abschneiden oben im Drawable. |
left |
Platzieren Sie das Objekt auf der linken Seite des Behälters, ohne seine Größe zu ändern. Dies ist die
Standardeinstellung. Wenn clipOrientation den Wert "horizontal" hat, erfolgt die Begrenzung auf der rechten Seite des
das Drawable. |
right |
Platzieren Sie das Objekt auf der rechten Seite des Containers, ohne seine Größe zu ändern. Wenn clipOrientation den Wert "horizontal" hat, erfolgt die Begrenzung auf der linken Seite des
das Drawable. |
center_vertical |
Platzieren Sie das Objekt in der vertikalen Mitte des Containers, ohne seine Größe zu ändern. Clipping
Dies ist identisch mit der Schwerkraft "center" . |
fill_vertical |
Vergrößere das Objekt bei Bedarf vertikal, damit es den Behälter vollständig ausfüllt. Wenn clipOrientation den Wert "vertical" hat, erfolgt keine Begrenzung, da das Drawable das
vertikalen Abstand (es sei denn, die Drawable-Ebene ist 0; in diesem Fall ist sie nicht sichtbar). |
center_horizontal |
Platzieren Sie das Objekt in der horizontalen Mitte des Containers, ohne seine Größe zu ändern.
Das Clipping funktioniert genauso wie bei der Schwerkraft "center" . |
fill_horizontal |
Vergrößere das Objekt bei Bedarf horizontal, damit es den Behälter vollständig ausfüllt. Wann?
clipOrientation ist "horizontal" , es erfolgt keine Begrenzung, weil das Drawable das
horizontaler Abstand (es sei denn, die Drawable-Ebene ist 0; in diesem Fall ist sie nicht sichtbar).
|
center |
Platzieren Sie das Objekt sowohl auf der vertikalen als auch auf der horizontalen Achse in der Mitte des Containers, nicht
indem Sie die Größe ändern. Wenn clipOrientation den Wert "horizontal" hat, erfolgt die Begrenzung links und rechts. Wenn clipOrientation den Wert "vertical" hat, erfolgt die Begrenzung oben und unten. |
fill |
Vergrößern Sie die horizontale und vertikale Größe des Objekts, damit es vollständig ausfüllt.
Container. Es erfolgt keine Begrenzung, da das Drawable
horizontalen und vertikalen Abstand (außer die Drawable-Ebene ist 0; in diesem Fall ist sie nicht
sichtbar). |
clip_vertical |
Zusätzliche Option, die festgelegt werden kann, dass der obere und/oder untere Rand des untergeordneten Elements
die Grenzen seines Containers aus. Der Clip basiert auf der vertikalen Schwerkraft:
wird die obere Kante durch eine untere Schwerkraft abgeschnitten, und keiner der beiden hält beide Kanten ab.
|
clip_horizontal |
Zusätzliche Option, die festgelegt werden kann, dass der linke und/oder rechte Rand des untergeordneten Elements
die Grenzen seines Containers aus. Der Clip basiert auf der horizontalen Schwerkraft:
wird die rechte Kante durch die rechte Schwerkraft abgeschnitten. Beide Kanten werden durch keine der 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" />
Die folgende Layout-XML wendet das Clip-Drawable auf eine Ansicht an:
<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 Bild nach und nach einblenden:
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);
}
Wenn Sie den Pegel erhöhen, müssen weniger zugeschnitten werden und das Bild wird langsam sichtbar. Hier ist es
bei einem Wert von 7.000:
Hinweis:Die Standardebene ist 0, d. h., das Bild wird vollständig zugeschnitten.
nicht sichtbar ist. Bei einer Stufe von 10.000 wird das Bild nicht zugeschnitten und ist vollständig sichtbar.
- Siehe auch:
-
Skala-Drawable
Ein in XML definiertes Drawable, das die Größe eines anderen Drawable-Elements basierend auf seiner aktuellen
- Dateispeicherort:
res/drawable/filename.xml
Der Dateiname ist die Ressourcen-ID.
- Datentyp der kompilierten Ressource:
- Ressourcenzeiger auf ein
ScaleDrawable
- Ressourcenreferenz:
-
In Java:
R.drawable.filename
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 Drawable für den Maßstab. Dies muss das Stammelement sein.
Attribute:
xmlns:android
- String. Erforderlich. Definiert den XML-Namespace, der sein muss.
"http://schemas.android.com/apk/res/android"
android:drawable
- Drawable resource. Erforderlich. Verweis auf ein Drawable
.
android:scaleGravity
- Keyword: Gibt die Position der Schwerkraft nach der Skalierung an.
Muss einer oder mehrere der folgenden konstanten Werte sein, die durch |
getrennt sind:
Wert | Beschreibung |
top |
Platzieren Sie das Objekt oben auf dem Container, ohne seine Größe zu ändern. |
bottom |
Platzieren Sie das Objekt unten in den Container, ohne seine Größe zu ändern. |
left |
Platzieren Sie das Objekt auf der linken Seite des Behälters, ohne seine Größe zu ändern. Dies ist die
Standardeinstellung. |
right |
Platzieren Sie das Objekt auf der rechten Seite des Containers, ohne seine Größe zu ändern. |
center_vertical |
Platzieren Sie das Objekt in der vertikalen Mitte des Containers, ohne seine Größe zu ändern. |
fill_vertical |
Vergrößere das Objekt bei Bedarf vertikal, damit es den 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ößere das Objekt bei Bedarf horizontal, damit es den Behälter vollständig ausfüllt.
|
center |
Platzieren Sie das Objekt sowohl auf der vertikalen als auch auf der horizontalen Achse in der Mitte des Containers, nicht
indem Sie die Größe ändern. |
fill |
Vergrößern Sie die horizontale und vertikale Größe des Objekts, damit es vollständig ausfüllt.
Container. |
clip_vertical |
Zusätzliche Option, die festgelegt werden kann, dass der obere und/oder untere Rand des untergeordneten Elements
die Grenzen seines Containers aus. Der Clip basiert auf der vertikalen Schwerkraft:
wird die obere Kante durch eine untere Schwerkraft abgeschnitten, und keiner der beiden hält beide Kanten ab.
|
clip_horizontal |
Zusätzliche Option, die festgelegt werden kann, dass der linke und/oder rechte Rand des untergeordneten Elements
die Grenzen seines Containers aus. Der Clip basiert auf der horizontalen Schwerkraft:
wird die rechte Kante durch die rechte Schwerkraft abgeschnitten. Beide Kanten werden durch keine der beiden Kanten abgeschnitten.
|
android:scaleHeight
- Prozentsatz. Die Skalierungshöhe als Prozentsatz der Drawable-Werte
gebunden. Das Format des Werts ist XX%, z. B. 100% oder 12,5%.
android:scaleWidth
- Prozentsatz. Die Skalierungsbreite als Prozentsatz der
gebunden. 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 in XML definierte generische Form.
- Dateispeicherort:
res/drawable/filename.xml
Der Dateiname ist die Ressourcen-ID.
- Datentyp der kompilierten Ressource:
- Ressourcenzeiger auf ein
GradientDrawable
- Ressourcenreferenz:
-
In Java:
R.drawable.filename
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 Form-Drawable Dies muss das Stammelement sein.
Attribute:
xmlns:android
- String. Erforderlich. Definiert den XML-Namespace, der sein muss.
"http://schemas.android.com/apk/res/android"
android:shape
- Keyword: Definiert den Typ der Form. Gültige Werte sind folgende:
Wert | Beschreibung |
"rectangle" |
Ein Rechteck, das die enthaltende Ansicht ausfüllt. Dies ist die Standardform. |
"oval" |
Eine ovale Form, die den Abmessungen der enthaltenden Ansicht entspricht. |
"line" |
Eine horizontale Linie, die sich über die Breite der enthaltenden Ansicht erstreckt. Dieses
Für die Form muss das <stroke> -Element die Breite der
Zeile. |
"ring" |
Ein Ring. |
Die folgenden Attribute werden nur verwendet, wenn android:shape="ring"
:
android:innerRadius
- Dimension. Der Radius für die
inneren Teil des Rings (das Loch in der Mitte) als Dimensionswert oder als Dimensionsressource.
android:innerRadiusRatio
- Gleitkommazahl. Der Radius für den inneren Wert
Teil des Rings, ausgedrückt als Verhältnis zur Breite des Rings. Bei
android:innerRadiusRatio="5"
entspricht der innere Radius der Breite des Rings geteilt durch 5. Dieses
-Wert wird durch android:innerRadius
überschrieben. Der Standardwert ist 9.
android:thickness
- Dimension. Die Dicke der
Ring, als Dimensionswert oder Dimensionsressource.
android:thicknessRatio
- Gleitkommazahl. Die Dicke des Rings
ausgedrückt als Verhältnis
zur Ringbreite. Wenn zum Beispiel
android:thicknessRatio="2"
, dann
Die Dicke entspricht der Breite des Rings geteilt durch 2. Dieser Wert wird von android:innerRadius
überschrieben. Der Standardwert ist 3.
android:useLevel
- Boolescher Wert. „True“, wenn dies als
ein
LevelListDrawable
. Das ist normalerweise falsch,
Andernfalls wird die Form möglicherweise nicht angezeigt.
<corners>
- Erstellt abgerundete Ecken der Form Gilt nur, wenn es sich bei der Form um ein Rechteck handelt.
Attribute:
android:radius
- Dimension. Der Radius für alle Ecken als Dimensionswert oder Dimensionsressource. Dies wird für alle
durch die folgenden Attribute.
android:topLeftRadius
- Dimension. Der Radius für die obere linke Ecke als Dimensionswert oder Dimensionsressource.
android:topRightRadius
- Dimension. Der Radius für die obere rechte Ecke als Dimensionswert oder Dimensionsressource.
android:bottomLeftRadius
- Dimension. Der Radius für die Ecke unten links als Dimensionswert oder Dimensionsressource.
android:bottomRightRadius
- Dimension. Der Radius für die Ecke unten rechts als Dimensionswert oder Dimensionsressource.
Hinweis:Jede Ecke muss anfangs mit einer Ecke versehen sein.
größer als 1 sein, da sonst keine Ecken abgerundet werden. Wenn Sie bestimmte Ecken
nicht abgerundet werden soll, können Sie das Problem umgehen, indem Sie mit android:radius
eine Standardecke festlegen.
größer als 1 und überschreiben Sie dann jede Ecke mit den Werten,
und geben Sie 0 ("0dp") an, wo keine abgerundeten Ecken wünschen.
<gradient>
- Hiermit wird die Farbe des Farbverlaufs der Form festgelegt.
Attribute:
android:angle
- Ganzzahl. Der Winkel für den Farbverlauf in Grad. 0 bedeutet von links nach rechts, 90 ist
von unten nach oben. Er muss ein Vielfaches von 45 sein. Der Standardwert ist 0.
android:centerX
- Gleitkommazahl. Die relative X-Position für die Mitte des Farbverlaufs (0–1,0).
android:centerY
- Gleitkommazahl. Die relative Y-Position für die Mitte des Farbverlaufs (0–1,0).
android:centerColor
- Farbe. Optionale Farbe, die zwischen den Start- und Endfarben steht,
Hexadezimalwert oder Farbressource
android:endColor
- Farbe. Die Endfarbe als hexadezimal
Wert oder color resource.
android:gradientRadius
- Gleitkommazahl. Der Radius des Farbverlaufs. Wird nur angewendet, wenn
android:type="radial"
.
android:startColor
- Farbe. Die Startfarbe als hexadezimal
Wert oder color resource.
android:type
- Keyword: Die Art des Farbverlaufsmusters, das angewendet werden soll. Gültige Werte sind folgende:
Wert | Beschreibung |
"linear" |
Ein linearer Farbverlauf. Das ist die Standardeinstellung. |
"radial" |
Ein radialer Farbverlauf. Die Startfarbe ist die mittlere Farbe. |
"sweep" |
Eine geschwungene Linie mit Farbverlauf. |
android:useLevel
- Boolescher Wert. „True“, wenn dies als
LevelListDrawable
verwendet wird.
<padding>
- Abstand, der auf das enthaltende Ansichtselement angewendet wird. Dadurch wird die Position der Ansicht angepasst.
und nicht die Form.
Attribute:
android:left
- Dimension. Abstand links 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 als Dimensionsressource.
Hinweis:Standardmäßig wird die Form an die Größe des Containers angepasst.
Proportion zu den hier definierten Abmessungen angezeigt werden. Wenn Sie die Form in einem 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. Farbe, die auf die Form angewendet werden soll, als hexadezimal
Wert oder color resource.
<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 Farbressource
android:dashGap
- Dimension. Der Abstand zwischen den Strichen als Dimensionswert oder als Dimensionsressource. Nur gültig, wenn
android:dashWidth
festgelegt ist.
android:dashWidth
- Dimension. Die Größe jeder gestrichelten Linie 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 wendet das Drawable für die Form auf eine Ansicht an:
<TextView
android:background="@drawable/gradient_box"
android:layout_height="wrap_content"
android:layout_width="wrap_content" />
Dieser Anwendungscode ruft das Drawable für die Form ab und wendet es auf eine Ansicht an:
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:
-