In Android, definierte ich eine ImageView
‚s layout_width
zu sein fill_parent
(was die gesamte Breite des Telefons aufgreift).
Wenn das Bild, das ich eingefügt habe, ImageView
größer als das ist layout_width
, wird es von Android skaliert, oder? Aber was ist mit der Höhe? Wenn Android das Bild skaliert, bleibt das Seitenverhältnis erhalten?
Was ich herausfinde, ist, dass es oben und unten einen Leerraum gibt, ImageView
wenn Android ein Bild skaliert, das größer als das ist ImageView
. Ist das wahr? Wenn ja, wie kann ich diesen Leerraum entfernen?
quelle
setImageBitmap
ist das gleiche wieandroid:src="..."
undsetBackground...
istandroid:background="..."
image.setImageDrawable(...)
ist auchandroid:src="..."
in XML.android:adjustViewBounds
war das letzte Stück zu meinem Puzzle, danke!Siehe
android:adjustViewBounds
.quelle
An alle anderen, die dieses spezielle Problem haben. Sie haben eine
ImageView
, deren Breitefill_parent
und Höhe proportional skaliert werden sollen:Fügen Sie diese beiden Attribute hinzu
ImageView
:Und stellen Sie die
ImageView
Breitefill_parent
und Höhe auf einwrap_content
.Wenn Sie nicht möchten, dass Ihr Bild zugeschnitten wird, versuchen Sie Folgendes:
quelle
View
)". AFAICT hat keine andere AnsichtadjustViewBounds
oderscaleType
Attribute.Wenn Sie möchten,
ImageView
dass beide skaliert werden, während das richtige Seitenverhältnis beibehalten wird, fügen Sie dies Ihrem XML hinzu:Fügen Sie dies Ihrem Code hinzu:
Es hat eine Weile gedauert, bis dies funktioniert hat, aber dies scheint in den Fällen zu funktionieren, in denen das Bild kleiner als die Bildschirmbreite und größer als die Bildschirmbreite ist und das Bild nicht verpackt wird.
quelle
Das hat bei mir funktioniert:
quelle
Das hat mein Problem gelöst
quelle
Unterer Code Arbeiten für Skalierungsbild als Seitenverhältnis:
quelle
Schauen Sie sich ImageView.ScaleType an, um zu steuern und zu verstehen, wie die Größenänderung in einem erfolgt
ImageView
. Wenn die Bildgröße geändert wird (unter Beibehaltung des Seitenverhältnisses), besteht die Möglichkeit, dass entweder die Höhe oder Breite des Bilds kleiner alsImageView
die Abmessungen des Bildes wird .quelle
Verwenden Sie diese Eigenschaften in ImageView, um das Seitenverhältnis beizubehalten:
quelle
So hat es bei mir in einem ConstraintLayout funktioniert:
Dann setze ich im Code das Zeichenbare wie folgt:
Dies passt gut zum Bildverhältnis und hält es in der Mitte.
quelle
Ich habe ein Bild, das kleiner als der Bildschirm ist. Um es proportional zum Maximum zu dehnen und in der Ansicht zu zentrieren, musste ich den folgenden Code verwenden:
Beachten Sie jedoch, dass einige Elemente, die über ein relatives Layout verfügen und so eingestellt sind, dass sie sich über oder unter der ImageView befinden, höchstwahrscheinlich vom Bild überlappt werden.
quelle
Wenn die Bildqualität abnimmt: Verwenden Sie
anstatt
quelle
Für alle unter Ihnen, die möchten, dass das Bild genau der Bildansicht mit der richtigen Skalierung und ohne Zuschneiden entspricht
Dabei ist imageView die Ansicht, die Ihre ImageView darstellt
quelle
Sie können die Bildschirmbreite berechnen. Und Sie können die Bitmap skalieren.
Berechnen Sie die Bildschirmbreite und die skalierte Bildhöhe anhand der Bildschirmbreite.
Nachdem Sie die Bitmap skalieren können.
quelle
Wenn Sie dies programmgesteuert tun, rufen Sie die Setter in der richtigen Reihenfolge auf:
quelle
Wenn Sie möchten, dass Ihr Bild den maximal möglichen Platz einnimmt, ist dies die beste Option
quelle
Du brauchst keinen Java-Code. Du musst nur :
Der Schlüssel befindet sich im übergeordneten Element für Breite und Höhe
quelle
Versuchen Sie es mit
android:layout_gravity
ImageView:Das obige Beispiel hat bei mir funktioniert.
quelle
Ich habe einen Algorithmus, um eine Bitmap so zu skalieren, dass sie am besten zu den Containerabmessungen passt, wobei das Seitenverhältnis beibehalten wird. Bitte finden meine Lösung hier
Hoffe, das hilft jemandem auf der Straße!
quelle
Ich benutze das:
quelle
Im Falle der Verwendung
cardview
zum Rundenimageview
und Fixierenandroid:layout_height
für den Header funktionierte dies für mich, um das Bild mit zu ladenGlide
quelle
Sie können ein Bild skalieren, das auch die Größe Ihres Bildes verringert. Es gibt eine Bibliothek dafür, die Sie herunterladen und verwenden können. https://github.com/niraj124124/Images-Files-scale-and-compress.git
Verwendung 1) Importieren Sie den Compressor-v1.0. Glas zu Ihrem Projekt. 2) Fügen Sie zum Testen den folgenden Beispielcode hinzu. ResizeLimiter resize = ImageResizer.build (); resize.scale ("inputImagePath", "outputImagePath", imageWidth, imageHeight); Je nach Ihren Anforderungen gibt es viele weitere Methoden
quelle
Übergeben Sie Ihre ImageView und basierend auf Bildschirmhöhe und -breite können Sie sie erstellen
quelle
Schnelle Antwort:
quelle
quelle