MICHELEPISANI.IT
 

Adattare un'immagine ad un'ImageButton in modo programmatico

Adattare un'immagine in base alle dimensioni di un'ImageButton

Android OS - Adattare un'immagine alle dimensioni di un'ImageButton
Giugno 10
07:472014

Quando si lavora con le ImageButton può capitare di avere la necessità di aggiungere in maniera programmatica un'immagine all'interno del bottone e che questa, per motivi di dimensioni ossia quando la larghezza o l'altezza dell'immagine è superiore rispetto a quella del bottone, non si adatti adeguatamente a quest'ultimo.
A livello visivo questa situazione non è certamente gradevole pertanto per fare in modo che l'immagine occupi lo spazio delimitato (o una sua porzione come ad esempio il 75% dell'area) una maniera potrebbe essere quella di andare ad agire sul tag ImageButton nel relativo file .xml di layout (as esempio res/layout/main.xml), aggiungendo due particolari proprietà:

android:scaleType="fitCenter"
android:adjustViewBounds="true"


La prima, come si intuisce dal nome, permette di scalare l'immagine ed in questo caso centrarla in base alle dimensioni dell'ImageView e la seconda per mantenere le sue proporzioni evitando che si distoca.
Le proprietà in questione possono essere aggiunte anche programmaticamente, ma il metodo descritto è oggettivamente più semplice ed immediato.
Se si vuole lasciare un po' di margine tra i bordi del bottone e l'immgine al suo interno basterà aggiungere la proprietà android:padding="20dp" (aggiustando il valore in base alle proprie esigenze).


Riepilogando il codice da utilizzare è il seguente:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
 
    <ImageButton
        android:id="@+id/imageButton1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:adjustViewBounds="true"
        android:scaleType="fitCenter"
        android:padding="20dp" />
 
</LinearLayout>



Ed il risultato (in Fig. 1):

Adattare un'immagine in base alle dimensioni di un'ImageButton

Fig. 1 - Immagine adattata alle dimensioni di un'ImageButton


Nel caso l'immagine fosse aggiunta non programmaticamente ma direttamente nel file .xml di layout  tramite la proprietà android:src="@drawable/android_button" il problema oggetto di questo articolo non sussiste.

Tags
Condividi

Autore

Michele Pisani

Michele Pisani

Ho uno spiccato orientamento al problem-solving, se è troppo facile non mi diverto :)
Credo nella volontà e nel cambiamento perchè hanno fatto della mia passione il mio pane quotidiano.
Se devo descrivermi con una sola parola direi... "Concretezza", la mia stretta di mano è una garanzia.

0 Commenti

Non ci sono commenti

Nessuno ha ancora commentato questo articolo, fallo tu per primo!

Scrivi un Commento

Scrivi un Commento

Il tuo indirizzo email non sarà pubblicato.
I campi contrassegnati da un * sono obbligatori

Articoli e Argomenti correlati

Categorie popolari

Iscriviti alla mia newsletter

La tua e-mail con me sarà al sicuro.
Non fornirò mai le tue informazioni a nessuno!

Ultimi commenti

Michele Pisani

Ciao peppe,
che tipo di errore ti dà? Hai verificato se il resto delle caratteristiche è …

peppe

Ciao, perchè non posso unire takeshy kurosawa con takeshy kurosawa shop? non sono nomi simili?

Michele Pisani

Grazie Ottavia, fa sempre piacere ricevere un feedback. Buon proseguimento.

Ottavia Neruda

La tua guida mi è stata utilissima. L'ho trovata semplice, ben fatta ed intuitiva. Grazie.