web-dev-qa-db-fra.com

Android: étirer l'image dans imageview pour l'adapter à l'écran

J'ai un imageview dont la hauteur et la largeur sont définies sur fill_parent avec un linearlayout dont les valeurs sont identiques. Donc, je suppose que cela devrait régler mes images pour correspondre à l'écran. Mais cela ne correspond qu’à 80% (marge en haut et en bas en mode paysage).

J'ai essayé le code suivant sans succès:

Display display = getWindowManager().getDefaultDisplay(); 
int width = display.getWidth();
int height = display.getHeight();

imgView.setMinimumWidth(width);
imgView.setMinimumHeight(height);

imgView.setMaxWidth(width);
imgView.setMaxHeight(height);

D'autres idées?

122
Johan

utiliser imgview.setScaleType(ScaleType.FIT_XY);

304
Pinki

Donnez dans le fichier XML de votre mise en page Android:scaleType="fitXY"
P.S: ceci s'applique lorsque l'image est définie avec Android:src="..." plutôt que Android:background="...", car les arrière-plans sont configurés par défaut pour s'étirer et s'adapter à la vue.

117
Sen

utilisez ceci:

ImageView.setAdjustViewBounds(true);
21
Lalit kumar

si vous utilisez Android:scaleType="fitXY", vous devez spécifier

Android:layout_width="75dp" et Android:layout_height="75dp"

si vous utilisez wrap_content, il ne sera pas étendu à ce dont vous avez besoin

<ImageView
Android:layout_width="75dp"
Android:layout_height="75dp"
Android:id="@+id/listItemNoteImage"
Android:src="@drawable/MyImage"
Android:layout_alignParentTop="true"
Android:layout_alignParentStart="true"
Android:layout_marginStart="12dp"
Android:scaleType="fitXY"/>
8
Ozear

La réponse acceptée est parfaite, cependant si vous voulez le faire à partir du XML, vous pouvez utiliser Android:scaleType="fitXY"

J'ai utilisé ce code Android:scaleType="fitXY" dans un fichier XML.

2
user6011162

changez simplement la hauteur et la largeur de votre ImageView en wrap_content et utilisez

exampleImage.setScaleType (ImageView.ScaleType.FIT_XY);

dans votre code.

0
Ankur Yadav