Domanda

Come posso evitare che il mio bitmap da essere ridimensionato automaticamente in una ImageView o ImageButton se la vista o il tasto è allungato utilizzando "fill_parent" o con "peso"?

Questo sarà utile, ad esempio, per creare un 4-pulsante di barra degli strumenti nella parte superiore dello schermo in cui i pulsanti sono equidistanti, ma le immagini all'interno i pulsanti sempre che si estendono anche se io la uso scaleType="center", che dovrebbe prevenire la formazione di incrostazioni secondo il doc, ma non è così.

Qualsiasi idea è apprezzato!

Grazie,

È stato utile?

Soluzione

Ho scoperto che quando si utilizza android:background ridimensiona automaticamente l'immagine che si sta utilizzando non per la dimensione della Vista.

Ho provato ad usare android:src per inserire l'immagine nella vista.L'immagine non in scala, ma non ho potuto ottenere l'immagine al centro è relativa alla dimensione della Vista.

Così ho provato a fare il Pulsante di tutto è proprio relativo layout e questo è quello che ho usato:

<RelativeLayout android:id="@+id/RelativeLayout01" 
                android:layout_height="fill_parent" 
                android:layout_width="fill_parent">
                <ImageButton android:id="@+id/ImageButton01"    
                             android:layout_height="fill_parent"
                             android:layout_width="fill_parent"></ImageButton>
                <ImageView android:id="@+id/ImageView01"
                           android:layout_width="wrap_content"
                           android:layout_height="wrap_content" 
                           android:background="@drawable/cardback1" 
                           android:layout_centerInParent="true"></ImageView>
</RelativeLayout>

ImageButton è in background e sarà sempre la stessa dimensione come il layout.L'ImageView tuttavia rimarrà sempre centrata nel RelativeLayout e non in scala.In questo modo il RelativeLayout stesso può crescere e muoversi e l'Immagine sulla parte superiore del pulsante rimarrà sempre la stessa dimensione, ma il pulsante è in crescita.L'immagine tuttavia ridursi se il Layout diventa più piccola dell'immagine stessa.

Penso che è quello che stavi cercando.Ci può essere un modo migliore per fare questo, ma questo è tutto quello che posso venire con ora.

Altri suggerimenti

È sufficiente modificare la drawable, applicare uno sfondo più trasparente. Di 'la mia disegnabile in hdpi è 41 * 48 px icon.png. Ho creato una nuova immagine 60 * 60 px con uno sfondo trasparente, copiare e incollare l'icon.png precedente e salvare con lo stesso nome. In questo modo non c'è bisogno di toccare i layout.

Quindi è possibile controllare la zona tasto più grande se si applica un non trasparente Android: sfondo :

<ImageButton android:id="@+id/widget_open"
android:src="@drawable/icon_widget_arrow_up"
android:background="#ff777777"
android:layout_height="wrap_content"
android:layout_width="wrap_content"></ImageButton>

Applicare il drawable precedente e di nuovo da Android: src , si dovrebbe vedere chiaramente zona ImageButton.

A proposito, io sono in esecuzione l'applicazione in modalità di compatibilità.

Se l'immagine viene scalata, assicurarsi che non si esegue la vostra applicazione in modalità di compatibilità (per esempio se si target Android 1.5 / 1.6 senza sostenere densità multiple e si esegue l'applicazione su Android 2.0.)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top