Mettre à l’échelle une image pour remplir toute ImageView sous Android

Je voudrais mettre à l’échelle une image pour prendre toute la taille d’une ImageView. Ceci est subtilement différent que d’utiliser scaleType=fit_center car fit_center laissera des bandes autour de l’image si le format de l’image ne correspond pas exactement au format de l’image. Au lieu de cela, je voudrais que l’image soit centrée et mise à l’échelle pour remplir complètement la vue englobante, avec tout excès coupé.

Je suis capable d’accomplir ceci en calculant ma propre masortingce d’image personnalisée pendant onCreate ():

 final Display display = getWindowManager().getDefaultDisplay(); final float screenWidth = display.getWidth(); final float screenHeight = display.getHeight(); final float imageWidth = splashView.getDrawable().getInsortingnsicWidth(); final float imageHeight = splashView.getDrawable().getInsortingnsicHeight(); final Masortingx splashMasortingx = new Masortingx(); final float scale = Math.max(screenHeight/imageHeight,screenWidth/imageWidth); splashMasortingx.postScale( scale, scale ); splashView.setImageMasortingx(splashMasortingx); 

Cela fonctionne bien, mais il semble qu’il y ait un plus facile. Est-ce que quelqu’un connaît un moyen de faire évoluer une image dans un ImageView tout en préservant le rapport hauteur / largeur de l’image et en remplissant complètement l’ImageView?

(Remarque: dans mon cas, mon ImageView est en plein écran, donc j’utilise getWindowManager().getDisplay() pour trouver la taille d’image souhaitée. Vous ne pouvez pas utiliser splashView.getWidth() / getHeight() car la vue a n’a pas encore été aménagé et n’a pas de taille)

Vous pouvez utiliser android:scaleType="centerCrop" . Maintient le rapport d’aspect et redimensionne l’image comme vous le souhaitez.

Pour plus d’informations s’il vous plaît passer par le lien ci-dessous

http://developer.android.com/reference/android/widget/ImageView.html#attr_android:scaleType