14 Stimmen

wie man ein Bild in einer ImageView so skaliert, dass es "passt"

Ich möchte ein Bild in einer ImageView auf folgende Weise skalieren. Die ImageView hat einige Dimensionen Breite (W) und Höhe (H). Das Bild, das ich in die ImageView einfüge, kann kleiner oder größer als WxH sein. Ich möchte, dass es unter Beibehaltung des Seitenverhältnisses skaliert wird auf füllen. BxH Raum.

Es scheint, wie die nächste Sache zu dem, was ich will, ist Android:scaleType="centerInside", aber was ich sehe, ist, dass, wenn das Bild kleiner ist als WxH, es wird eine kleine-unskalierte Version des Bildes in der Mitte des ImageView (wie die Dokumentation sagt), aber ich möchte es zu skalieren, um "fit", während das gesamte Bild zu zeigen, und es auf die maximal mögliche Größe des Containers ohne Beschneidung etwas strecken. Mit anderen Worten, Stretch Erhaltung Seitenverhältnis, bis entweder die Breite oder die Höhe stößt an den Rand des Containers (ImageView).

Das scheint eine offensichtliche Sache zu sein, die man tun möchte, aber ich bekomme es nicht hin, so zu arbeiten!!!

15voto

Squonk Punkte 48341

Aus den Android-Dokumenten...

public static final Matrix.ScaleToFit CENTER

Berechnen Sie eine Skalierung, die das ursprüngliche Seitenverhältnis von src beibehält, aber auch sicherstellt, dass src vollständig in dst passt. Mindestens eine Achse (X oder Y) wird genau passen. Das Ergebnis ist innerhalb von dst zentriert.

Das XML-Attribut hierfür lautet...

android:scaleType="fitCenter"

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X