Share via


Pulsante personalizzato

In questa sezione verrà creato un pulsante con un'immagine personalizzata invece di testo, usando il Button widget e un file XML che definisce tre immagini diverse da usare per i diversi stati dei pulsanti. Quando si preme il pulsante, verrà visualizzato un breve messaggio.

Fare clic con il pulsante destro del mouse e scaricare le tre immagini seguenti, quindi copiarle nella directory Resources/drawable del progetto. Questi verranno usati per i diversi stati del pulsante.

Green Android icon for normal stateOrange Android icon for focused stateYellow Android icon for pressed state

Creare un nuovo file nella directory Resources/drawable denominata android_button.xml. Inserire il codice XML seguente:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/android_pressed"
          android:state_pressed="true" />
    <item android:drawable="@drawable/android_focused"
          android:state_focused="true" />
    <item android:drawable="@drawable/android_normal" />
</selector>

In questo modo viene definita una singola risorsa di disegno, che modifica l'immagine in base allo stato corrente del pulsante. Il primo <item> definisce android_pressed.png come immagine quando viene premuto il pulsante (è stato attivato); il secondo <item> definisce android_focused.png come immagine quando il pulsante è attivo (quando il pulsante viene evidenziato usando il trackball o il riquadro direzionale) e il terzo <item> definisce android_normal.png come immagine per lo stato normale (quando non viene premuto né attivo). Questo file XML rappresenta ora una singola risorsa disegnabile e quando fa riferimento a un oggetto Button per lo sfondo, l'immagine visualizzata cambierà in base a questi tre stati.

Nota

L'ordine <item> degli elementi è importante. Quando viene fatto riferimento a questo elemento drawable, gli <item>oggetti vengono attraversati per determinare quale elemento è appropriato per lo stato corrente del pulsante. Poiché l'immagine "normale" è l'ultima, viene applicata solo quando le condizioni android:state_pressed e android:state_focused hanno entrambi valutato false.

Aprire il file Resources/layout/Main.axml e aggiungere l'elemento Button :

<Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="10dp"
        android:background="@drawable/android_button" />

L'attributo android:background specifica la risorsa di disegno da usare per lo sfondo del pulsante ( che, se salvato in Risorse/drawable/android.xml, viene fatto riferimento a @drawable/android). In questo modo viene sostituita la normale immagine di sfondo usata per i pulsanti in tutto il sistema. Affinché l'elemento disegnabile modifichi l'immagine in base allo stato del pulsante, l'immagine deve essere applicata allo sfondo.

Per fare in modo che il pulsante faccia qualcosa quando viene premuto, aggiungere il codice seguente alla fine del OnCreate() Metodo:

Button button = FindViewById<Button>(Resource.Id.button);

button.Click += (o, e) => {
    Toast.MakeText (this, "Beep Boop", ToastLength.Short).Show ();
};

In questo modo viene acquisito dal Button layout, quindi viene aggiunto un Toast messaggio da visualizzare quando Button si fa clic su .

Eseguire ora l'applicazione.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal progetto Open Source Android e usato in base ai termini descritti nellalicenza Creative Commons 2.5 Attribuzione.