Question

Comment puis-je empêcher mon bitmap d'être automatiquement mis à l'échelle dans un ImageView ou ImageButton si la vue ou le bouton est étirée à l'aide « fill_parent » ou en utilisant le « poids »?

Cela sera utile, par exemple, pour créer une barre d'outils 4 boutons en haut de l'écran où les boutons sont également espacés, mais les images à l'intérieur des boutons continuent à se streched même si j'utilise scaleType = « center », ce qui devrait éviter l'entartrage selon la doc, mais il ne fonctionne pas.

Toute idée est appréciée!

Merci,

Était-ce utile?

La solution

J'ai trouvé que lorsque vous utilisez Android: fond redimensionne automatiquement l'image que vous utilisez là pour la taille de la vue

.

J'ai essayé d'utiliser l'androïde: src pour mettre l'image dans la vue. L'image n'a pas l'échelle, mais je ne pouvais pas obtenir l'image à centre par rapport à la taille de la vue.

J'ai essayé de faire tout le boutonner sa propre disposition relative et voici ce que je:

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

Le ImageButton est en arrière-plan et sera toujours la même taille que la mise en page. Cependant, le ImageView restera toujours centrée dans le RelativeLayout et ne sera pas l'échelle. De cette façon, le RelativeLayout lui-même peut se développer et se déplacer et l'image au-dessus du bouton restera toujours la même taille, mais le bouton se développera. L'image sera toutefois rétrécir si la mise en page est plus petite que l'image elle-même.

Je pense que ce que vous recherchez. Il peut y avoir une meilleure façon de le faire, mais cela est tout ce que je peux trouver en ce moment.

Autres conseils

Il suffit de modifier votre drawable, appliquez un fond transparent plus grande. Dis mon drawable en hdpi est 41 * 48 px icon.png. J'ai créé une nouvelle image 60 * 60 px avec un fond transparent, copier-coller l'icon.png précédente et enregistrer sous le même nom. De cette façon, vous n'avez pas besoin de toucher vos mises en page.

Ensuite, vous pouvez vérifier la zone de bouton plus si vous appliquez une non transparent android: fond :

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

Appliquer le précédent et le nouveau drawable android: src , vous devriez voir clairement la zone ImageButton.

Par ailleurs, je suis en cours d'exécution de l'application en mode de compatibilité.

Si l'image est mise à l'échelle, assurez-vous que vous ne gérez pas votre application en mode de compatibilité (par exemple, si vous ciblez Android 1.5 / 1.6 sans supporter de multiples densités et que vous exécutez l'application sur Android 2.0.)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top