Drawable-Ressourcen

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)

Java

Resources res = getResources();
Drawable drawable = ResourcesCompat.getDrawable(res, 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:

WertBeschreibung
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:

WertBeschreibung
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:

WertBeschreibung
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:

WertBeschreibung
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:

WertBeschreibung
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:
WertBeschreibung
"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:
WertBeschreibung
"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: