Schaltflächen zu Ihrer App hinzufügen

Funktion „Schreiben“ ausprobieren
Jetpack Compose ist das empfohlene UI-Toolkit für Android. Informationen zum Hinzufügen von Komponenten in Compose.

Eine Schaltfläche besteht aus Text oder einem Symbol oder aus beidem. Damit wird kommuniziert, welche Aktion beim Antippen des Nutzers erfolgt.

Sie können eine Schaltfläche in Ihrem Layout auf eine von drei Arten erstellen, je nachdem, ob Sie eine Schaltfläche mit Text, einem Symbol oder beidem verwenden möchten:

  
  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:app="http://schemas.android.com/apk/res-auto"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:paddingLeft="16dp"
      android:paddingRight="16dp"
      android:orientation="vertical" >
  
      <Button
          android:id="@+id/supabutton"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:text="I'm a button" />
  
      <ImageButton
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:contentDescription="A tiny Android icon"
          android:src="@drawable/baseline_android_24"
          app:tint="#ff0000" />
  
      <Button
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:drawableStart="@drawable/baseline_android_24"
          android:drawablePadding="4dp"
          android:drawableTint="#ff0000"
          android:text="I'm a button with an icon" />
  </LinearLayout>

Der vorherige Code generiert in etwa Folgendes:

Ein Bild, auf dem drei Arten von Schaltflächen zu sehen sind
Abbildung 1: Drei Arten von Schaltflächen.

Auf Klickereignisse reagieren

Wenn der Nutzer auf eine Schaltfläche tippt, empfängt das Button-Objekt ein On-Click-Ereignis.

Wenn Sie den Event-Handler programmatisch deklarieren möchten, erstellen Sie ein View.OnClickListener-Objekt und weisen es der Schaltfläche zu, indem Sie setOnClickListener(View.OnClickListener) wie im folgenden Beispiel aufrufen:

Kotlin

findViewById<Button>(R.id.supabutton)
  .setOnClickListener {
      Log.d("BUTTONS", "User tapped the Supabutton")
  }

Java

Button button = (Button) findViewById(R.id.supabutton);
button.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
      Log.d("BUTTONS", "User tapped the Supabutton");
    }
});

Schaltfläche gestalten

Das Erscheinungsbild der Schaltfläche, also das Hintergrundbild und die Schriftart, variiert je nach Gerät, da Geräte verschiedener Hersteller oft unterschiedliche Standardstile für Eingabesteuerelemente haben.

Wenn du einzelne Schaltflächen mit einem anderen Hintergrund anpassen möchtest, gib das Attribut android:background mit einer Drawable- oder Farbressource an. Alternativ können Sie einen Stil für die Schaltfläche anwenden. Dieser funktioniert ähnlich wie HTML-Stile, um mehrere Stileigenschaften wie Hintergrund, Schriftart und Größe zu definieren. Weitere Informationen zum Anwenden von Stilen finden Sie unter Stile und Designs.

Rahmenlose Schaltfläche

Eines der nützlichen Designs ist eine „randlose“ Schaltfläche. Rahmenlose Schaltflächen ähneln einfachen Schaltflächen. Sie haben jedoch keinen Rahmen oder Hintergrund, ändern sich jedoch in verschiedenen Status, z. B. beim Tippen.

Wenn Sie eine Schaltfläche ohne Rahmen erstellen möchten, wenden Sie den Stil borderlessButtonStyle auf die Schaltfläche an, wie im folgenden Beispiel gezeigt:

<Button
  android:id="@+id/supabutton"
  style="?android:attr/borderlessButtonStyle"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:text="I'm a button" />

Benutzerdefinierter Hintergrund

Wenn du das Erscheinungsbild deiner Schaltfläche ganz neu definieren möchtest, kannst du einen benutzerdefinierten Hintergrund festlegen. Statt eine einfache Bitmap oder Farbe bereitzustellen, muss der Hintergrund jedoch eine Statuslistenressource sein, deren Darstellung sich abhängig vom aktuellen Status der Schaltfläche ändert.

Sie können die Liste der Bundesstaaten in einer XML-Datei definieren, in der drei Bilder oder Farben für die verschiedenen Schaltflächenzustände definiert sind.

So erstellen Sie ein Drawable für eine Statusliste für Ihren Schaltflächenhintergrund:

  1. Erstellen Sie drei Bitmaps für den Schaltflächenhintergrund, die die Standardzustände sowie die Status für die angetippten und fokussierten Schaltflächen darstellen. Damit Ihre Bilder für Schaltflächen unterschiedlicher Größe geeignet sind, erstellen Sie die Bitmaps als 9-Patch-Bitmaps.
  2. Platzieren Sie die Bitmaps im Verzeichnis res/drawable/ Ihres Projekts. Benennen Sie jede Bitmap so, dass sie den jeweiligen Schaltflächenstatus widerspiegelt, z. B. button_default.9.png, button_pressed.9.png und button_focused.9.png.
  3. Erstellen Sie eine neue XML-Datei im Verzeichnis res/drawable/. Geben Sie ihm einen Namen wie button_custom.xml. Füge einen XML-Code wie den folgenden ein:
    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:drawable="@drawable/button_pressed"
              android:state_pressed="true" />
        <item android:drawable="@drawable/button_focused"
              android:state_focused="true" />
        <item android:drawable="@drawable/button_default" />
    </selector>
    

    Hiermit wird eine einzelne Drawable-Ressource definiert, die ihr Bild basierend auf dem aktuellen Status der Schaltfläche ändert.

    • Die erste <item> definiert die Bitmap, die verwendet werden soll, wenn auf die Schaltfläche getippt (aktiviert) wird.
    • Die zweite <item> definiert die Bitmap, die verwendet werden soll, wenn die Schaltfläche im Fokus ist, z. B. wenn die Schaltfläche mit dem Trackball oder den Richtungstasten hervorgehoben wird.
    • Die dritte <item> definiert die Bitmap, die verwendet werden soll, wenn sich die Schaltfläche im Standardstatus befindet, also weder angetippt noch fokussiert ist.

    Diese XML-Datei stellt eine einzelne Drawable-Ressource dar. Wenn von einem Button als Hintergrund darauf verwiesen wird, ändert sich das angezeigte Bild je nach Status der Schaltfläche.

  4. Wende die Drawable-XML-Datei als Schaltflächenhintergrund an:
    <Button
        android:id="@+id/button_send"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/button_send"
        android:onClick="sendMessage"
        android:background="@drawable/button_custom"  />
    

Weitere Informationen zu dieser XML-Syntax und zum Definieren einer Schaltfläche, die deaktiviert ist, den Mauszeiger darüber bewegt oder einen anderen Status hat, finden Sie unter StateListDrawable.