Dans les applications, I définie une ImageView
« est layout_width
d'être fill_parent
(qui occupe toute la largeur du téléphone).
Si l'image que je mets ImageView
est plus grande que la layout_width
, Android la redimensionnera, non? Mais qu'en est-il de la hauteur? Lorsque Android redimensionnera l'image, conservera-t-il les proportions?
Ce que je découvre, c'est qu'il y a un espace blanc en haut et en bas du ImageView
lorsque Android redimensionne une image qui est plus grande que le ImageView
. Est-ce vrai? Si oui, comment puis-je éliminer cet espace blanc?
setImageBitmap
est le même queandroid:src="..."
etsetBackground...
estandroid:background="..."
image.setImageDrawable(...)
est égalementandroid:src="..."
en XML.android:adjustViewBounds
était la dernière pièce de mon puzzle, merci!Tu vois
android:adjustViewBounds
.la source
À toute autre personne ayant ce problème particulier. Vous avez un objet
ImageView
dont vous souhaitez avoir une largeurfill_parent
et une hauteur ajustées proportionnellement:Ajoutez ces deux attributs à votre
ImageView
:Et définissez la
ImageView
largeurfill_parent
et la hauteur surwrap_content
.De plus, si vous ne voulez pas que votre image soit recadrée, essayez ceci:
la source
View
)". AFAICT aucune autre vue n'aadjustViewBounds
niscaleType
attribut.Si vous voulez un
ImageView
qui évolue à la fois vers le haut et vers le bas tout en conservant le rapport d'aspect approprié, ajoutez ceci à votre XML:Ajoutez ceci à votre code:
Il m'a fallu un certain temps pour que cela fonctionne, mais cela semble fonctionner dans les cas où l'image est plus petite que la largeur de l'écran et plus grande que la largeur de l'écran, et elle ne encadre pas l'image.
la source
Cela a fonctionné pour moi:
la source
cela a résolu mon problème
la source
Code ci-dessous Travailler pour l'image à l'échelle comme rapport d'aspect:
la source
Jetez un œil à ImageView.ScaleType pour contrôler et comprendre la façon dont le redimensionnement se produit dans un fichier
ImageView
. Lorsque l'image est redimensionnée (tout en conservant son rapport hauteur / largeur), il est probable que la hauteur ou la largeur de l'image devienne inférieureImageView
aux dimensions de.la source
Utilisez ces propriétés dans ImageView pour conserver les proportions:
la source
Voici comment cela a fonctionné pour moi dans un ConstraintLayout:
Ensuite, dans le code, j'ai défini le drawable comme:
Cela correspond bien à l'image en fonction de son rapport d'aspect et la maintient au centre.
la source
J'ai une image plus petite que l'écran. Pour l'avoir étiré proportionnellement au maximum et centré dans la vue, j'ai dû utiliser le code suivant:
Gardez cependant à l'esprit que si vous avez une disposition relative et que certains éléments sont définis au-dessus ou au-dessous de ImageView, ils seront très probablement chevauchés par l'image.
la source
Si la qualité de l'image diminue dans: utiliser
au lieu de
la source
Pour tous ceux d'entre vous qui souhaitent que l'image corresponde exactement à l'image avec une mise à l'échelle appropriée et sans recadrage
où imageView est la vue représentant votre ImageView
la source
Vous pouvez calculer la largeur de l'écran. Et vous pouvez mettre à l'échelle le bitmap.
calculer la largeur de l'écran et la hauteur de l'image mise à l'échelle par la largeur de l'écran.
Une fois que vous pouvez mettre à l'échelle le bitmap.
la source
Lorsque vous faites cela par programmation, assurez-vous d'appeler les setters dans le bon ordre:
la source
Si vous voulez que votre image occupe le maximum d'espace possible, la meilleure option serait
la source
Vous n'avez pas besoin de code java. Il vous suffit de:
La clé est dans le parent de correspondance pour la largeur et la hauteur
la source
Essayez d'utiliser
android:layout_gravity
pour ImageView:L'exemple ci-dessus a fonctionné pour moi.
la source
J'ai un algorithme pour mettre à l'échelle un bitmap pour mieux s'adapter aux dimensions du conteneur, en conservant son rapport d'aspect. Veuillez trouver ma solution ici
J'espère que cela aide quelqu'un sur la voie!
la source
J'utilise ceci:
la source
en cas d'utilisation
cardview
pour l'arrondiimageview
et fixéandroid:layout_height
pour l'en-tête, cela a fonctionné pour moi de charger l'image avecGlide
la source
Vous pouvez redimensionner l'image qui réduira également la taille de votre image. Il existe une bibliothèque que vous pouvez télécharger et utiliser. https://github.com/niraj124124/Images-Files-scale-and-compress.git
Comment utiliser 1) Importez le compresseur-v1.0. pot à votre projet. 2) Ajoutez l'exemple de code ci-dessous pour tester. ResizeLimiter resize = ImageResizer.build (); resize.scale ("inputImagePath", "outputImagePath", imageWidth, imageHeight); Beaucoup plus de méthodes sont là selon votre condition
la source
Passez votre ImageView et en fonction de la hauteur et de la largeur de l'écran, vous pouvez le faire
la source
Réponse rapide:
la source
la source