web-dev-qa-db-fra.com

Comment puis-je faire de mon ImageView une taille fixe quelle que soit la taille du bitmap

Je charge donc des images à partir d'un service Web, mais la taille des images est parfois plus petite ou plus grande que les autres images et la visualisation semble idiote lorsque je les mets dans un ListView dans Android. Je voudrais fixer la taille de mon ImageView afin qu'elle ne montre qu'une partie de l'image si elle est plus grande qu'une quantité prédéfinie. J'ai essayé tout ce que je peux penser pour définir setMaxWidth/setMaxHeight, définir le type d'échelle sur centerCrop, en utilisant ClipableDrawable encapsulant mon BitmapDrawable, en utilisant Drawable.setBounds (). J'ai essayé de définir le XML et par programme, mais aucun n'a fonctionné. Je suis très surpris que le réglage de la largeur/hauteur maximale n'ait rien fait. Voici le XML que j'utilise la définition ImageView dans mon fichier de mise en page:

    <ImageView Android:id="@+id/recipeImage"
           Android:maxHeight="64px"
           Android:maxWidth="64px"
           Android:scaleType="centerCrop"
           Android:layout_width="wrap_content"
           Android:layout_height="fill_parent"
           Android:layout_alignParentTop="true"
           Android:layout_alignParentBottom="true"
           Android:layout_marginRight="6dip"/>

Mais rien n'a fonctionné.

36
chubbsondubs

Supprimez simplement les attributs maxHeight et maxWidth et entrez vos unités dans layout_width et layout_height convenablement. Mais n'utilisez pas l'unité px - utilisez plutôt dp, car ils sont indépendants de l'appareil.

46
mreichelt

Cela adaptera l'image à la hauteur et à la largeur spécifiées, indépendamment de la taille de l'image.

<ImageView
        Android:id="@+id/image5"
        Android:layout_width="300dp"
        Android:layout_height="200dp"
        Android:src="@drawable/image_1"
        Android:scaleType="fitXY"/>
3
Krishh
Get ImageVIews as facebook posts.    
Glide.with(context).load(link)
                    .placeholder(R.drawable.aboutlogo)
                    .fitCenter()
                    .diskCacheStrategy(DiskCacheStrategy.ALL)
                    .into(imageView);`

        <ImageView
                    Android:id="@+id/img1"
                    Android:src="@drawable/ic_menu_camera"
                    Android:adjustViewBounds="true"
                    Android:layout_width="match_parent"
                    Android:layout_height="wrap_content"
                    Android:scaleType="center"/>
0
Vikash Sharma