Imageview Android ne respectant pas maxWidth?

J’ai donc une image qui devrait afficher une image arbitraire, une image de profil téléchargée depuis Internet. Je veux que cette ImageView redimensionne son image à la hauteur du conteneur parent et que sa largeur maximale soit de 60dip. Cependant, si l’image est haute en termes de ratio et n’a pas besoin de la largeur totale de 60 pouces, la largeur de l’ImageView devrait diminuer afin que l’arrière-plan de la vue soit parfaitement ajusté autour de l’image.

J’ai essayé ceci,

 

mais cela a rendu l’ImageView super grand pour une raison quelconque, peut-être a-t-il utilisé la largeur insortingnsèque de l’image et wrap_content pour le définir – de toute façon, il ne respectait pas mon atsortingbut maxWidth. C’est dans un LinearLayout …

Aucune suggestion?

Ah,

 android:adjustViewBounds="true" 

est requirejs pour que maxWidth fonctionne.

Fonctionne maintenant!

Définir adjustViewBounds n’aide pas si vous utilisez match_parent , mais la solution de contournement est simple: ImageView personnalisé:

 public class LimitedWidthImageView extends ImageView { public LimitedWidthImageView(Context context) { super(context); } public LimitedWidthImageView(Context context, AtsortingbuteSet attrs) { super(context, attrs); } public LimitedWidthImageView(Context context, AtsortingbuteSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int specWidth = MeasureSpec.getSize(widthMeasureSpec); int maxWidth = getMaxWidth(); if (specWidth > maxWidth) { widthMeasureSpec = MeasureSpec.makeMeasureSpec(maxWidth, MeasureSpec.getMode(widthMeasureSpec)); } super.onMeasure(widthMeasureSpec, heightMeasureSpec); } }