17 Button

Oggi vediamo il Button, un’oggetto che secondo me, insieme ad EditText e TextView visti nei precedenti articoli, forma una sorta di “Santa Trinità” per la programmazione Java. Sfido chiunque a fare un’applicazione decente senza questi tre oggetti grafici, credo sia impossibile.

Cos’è?
La traduzione viene spontanea, è un Bottone, che verrà premuto dall’utente della vostra applicazione scatenando degli eventi. Eventi che verranno ovviamente gestiti da voi. Adesso via con le principali proprietà.

17.1

Principali proprietà:
• “layout_width” e “layout_height”: settate le dimensioni della vostra Button
• “text”: settate il testo che sarà visibile.
• “id”: l’identificatico che potrete usare nel codice per modificare alcune proprietà runtime come ad esempio il testo all’interno del Button.
• “layout_margin” (simile a “layout_marginBottom”, “layout_marginTop” ecc..): settate la distanza che avrà l’oggetto, il margine quindi, dagli altri oggetti che lo circondano oppure dal bordo del layout che lo ospita.
• “textColor”: potete cambiare il colore del testo scrivendo # seguito dal valore din esadecimale del colore che volete, ad esempio “#000000” rappresenta il colore nero. Ho scritto apposta un articolo in cui ho inserito una tabella con i codici dei principali colori:
Codici dei Colori
• “textSize”: scegliete la dimensione, in pixel o dp, del testo.
• “gravity”: scegliete l’allineamento che avrà il testo all’interno del Button (center, right e left sono i principali valori che potete dare a questa proprietà)
• “layout_weight”: con questo attributo assegnate l’importanza che ha il Button rispetto agli altri oggetti che sono contenuti insieme a lui nel layout (nota bene, solo con il linear_layout!).L’importanza “totale” che potete distribuire ai diversi oggetti è uguale ad 1. Faccio un esempio per essere più chiaro, ipotiziamo di avere tre button all’interno di un linear_layout grande quanto tutto lo scermo con orientamento verticale. Se date ad uno button weight=0.5 e agli altri due button weight=0.25 avrete che un bottone sarà grande come metà schermo mentre l’altra metà dello schermo sarà divisa in due parti uguali ognuna occupata da uno dei due button aventi weight=0.25. Quindi ricapitolando lo schermo avrebbe la seguente distribuzione:
button weight=0.5 (grande come 1/2 di schermo)
button weight=0.25 (grande come 1/4 di schermo)
button weight=0.25 (grande come 1/4 di schermo)
• “background”: potete cambiare il colore dello sfondo dell vostro Button assegnando un colore nello stesso modo del textColor visto sopra. Altrimenti con “@drawable/nomeimmagine” potete assegnare come sfondo un’immagine che avete messo nella cartella drawable (il nome dell’immagine va scritto senza aggiungere l’estensione). Vi sconsiglio comunque di mettere mai un’immagine all’interno di un Button, piuttosto usate un ImageButton che è stato creato per gestire più facilmente l’utilizzo di bottoni con sfondi grafici.
• “visibility”: assegnate la visibilità del Button che può avere 3 differenti parametri.
visible= l’oggetto è visibile
invisible=l’oggetto è invisibile ma lo spazio che sarebbe occupato dall’oggetto rimane bianco.
gone=l’oggetto sparisce proprio in tutti i sensi, anche gli altri oggetti non lo vedono più e il suo spazio viene eventualmente occupato dagli altri oggetti in base alla layout che state usando.
• “onClick”: in questa proprietà scriviamo un nome che sarà poi il nome che daremo nel codice java al metodo che verrà attivato ogni volta che il pulsante verrà premuto.
• “enabled”: potete decidere se attivare il Button o meno. Se date il valore “false” anche se l’utente premerà il Button non accadrà nulla e inoltre il bottone apparirà come sfocato, con “true” (che è l’opzione di default) invece verrà attivato il relativo metodo.
• “clickable”: funziona come enabled solo che se settato a “false” il bottone non apparirà come sfocato.

Queste sono tutte le principali proprietà di una Button, credo di aver usato soltanto queste e comunque al momento non ne ricordo altre.
Se volete saperne di più rispetto a qualche altra proprietà scrivetelo nei commenti, mi informerò e la aggiungerò alla lista. Oppure se conoscete altre proprietà e volete aggiungerle alla lista scrivetemi proprietà con relativa descrizione in commento e io l’aggiungerò.
Come sempre se volete una guida specifica riguardo a qualcosa scrivetemelo nei commenti e sarò felice di farla.
Arrivederci alla prossima!

Please follow and like us: