168 votes

Redimensionner une image en pleine largeur et en hauteur fixe avec Picasso

J'ai un LinearLayout vertical dont l'un des éléments est un ImageView chargé en utilisant Picasso. J'ai besoin d'augmenter la largeur de l'image à la largeur totale du dispositif, et d'afficher la partie centrale de l'image recadrée par une hauteur fixe (150dp). J'ai actuellement le code suivant :

Picasso.with(getActivity()) 
    .load(imageUrl) 
    .placeholder(R.drawable.placeholder) 
    .error(R.drawable.error) 
    .resize(screenWidth, imageHeight)
    .centerInside() 
    .into(imageView);

Quelles valeurs dois-je mettre dans screenWidth y imageHeight (=150dp) ?

506voto

Jake Wharton Points 26095

Vous êtes à la recherche de :

.fit().centerCrop()

Ce que cela signifie :

  • fit - attendre que le ImageView a été mesurée et redimensionner l'image pour qu'elle corresponde exactement à sa taille.
  • centerCrop - mettre à l'échelle l'image en respectant le rapport d'aspect jusqu'à ce qu'elle remplisse la taille. Recadrez le haut et le bas ou la gauche et la droite pour qu'elle corresponde exactement à la taille.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X