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
June 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

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

Il Canale YouTube in ITALIANO

1 VIDEO GRATIS ogni 2 settimane! ISCRIVITI!

Entra a far parte della community su Facebook

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

Hai verificato se succede per tutte le pagine da un certo periodo di tempo in poi o solo su alcune?

Tecnowiz

Sono amministratore di un blog pure io... Intanto ti faccio i complimenti per questo articolo. …

Michele Pisani

Ciao Antonio, grazie per la fiducia :) In caso di più fogli è necessario inserire il codice del …

Antonio

Ciao Michele, ho acquistato il tuo libro che unitamente ai tuoi video sta diventando il mio corso …