Android: Comment prévenir l'image d'être mis à l'échelle dans ImageView ou ImageButton?
Comment puis-je empêcher mon bitmap d'être mis à l'échelle automatiquement dans une ImageView ou ImageButton si la vue ou le bouton est tendu à l'aide de "fill_parent" ou à l'aide de "poids"?
Ce sera utile, par exemple, pour créer un 4-bouton de la barre d'outils en haut de l'écran où les boutons sont également espacés, mais les images à l'intérieur de l'boutons reçois tendue, même si j'utilise scaleType="centre", ce qui devrait empêcher la mise à l'échelle selon la doc, mais ça ne marche pas.
Tout insight est apprécié!
Merci,
OriginalL'auteur user277827 | 2010-03-09
Vous devez vous connecter pour publier un commentaire.
J'ai constaté que lors de l'utilisation d'android:background ajuste automatiquement l'image à partir de là à la taille de la Vue.
J'ai essayé d'utiliser le android:src pour mettre l'image dans la vue. L'image n'a pas d'échelle, mais je ne pouvais pas obtenir l'image au centre par rapport à la taille de la Vue.
J'ai donc essayé de faire l'ensemble de Bouton c'est propre par rapport de mise en page et c'est ce que j'ai utilisé:
La ImageButton est dans le fond et sera toujours de la même taille que la mise en page.
L'ImageView cependant toujours rester centré dans le RelativeLayout et pas à l'échelle.
De cette façon, le RelativeLayout lui-même peut grandir le mouvement et l'Image sur le bouton restera toujours la même taille, mais le bouton de croître. L'image sera toutefois rétrécir si le tracé devient plus petit que l'image elle-même.
Je pense que c'est ce que vous cherchez. Il peut y avoir une meilleure façon de le faire, mais c'est tout ce que je peux venir jusqu'à maintenant.
Merci Matt et Romain, le android:src est exactement ce que je cherchais. Qui a fait le tour 🙂
Oui, vous pouvez le faire, mais pourquoi s'embêter? Il y a un attribut pour que.
Aussi, lors de la configuration de votre image à l'aide de android:src il permet de définir l'arrière-plan transparent à l'aide de android:background="@null"
Si vous faites cela de manière dynamique (dans le code, par opposition à XML) utilisation imageView.setImageResource(R. drawable._____);
OriginalL'auteur Matt Swanson
Simplement modifier votre drawable, appliquer une plus grande arrière-plan transparent. Dire que mon drawable dans hdpi est de 41*48 px icône.png . J'ai créé une nouvelle image de 60*60 px avec un fond transparent , copier-coller l'icône précédente.png et de l'enregistrer sous le même nom. De cette façon, vous n'avez pas besoin de toucher à vos mises en page .
Alors vous pouvez vérifier le bouton de la zone de plus grand, si vous appliquez un non transparent android:background:
Appliquer le précédent et le nouveau, retirable à android:src , vous pouvez clairement voir ImageButton zone.
En passant, je suis en cours d'exécution de l'application en mode de compatibilité.
OriginalL'auteur Raymond Chenon
Si l'image est mise à l'échelle, assurez-vous que vous n'êtes pas l'exécution de votre application en mode de compatibilité (par exemple, si vous ciblez les Android 1.5/1.6 sans le soutien de plusieurs densités et que vous exécutez l'application sur Android 2.0.)
OriginalL'auteur Romain Guy