Ich habe eine Bitmap eines Base64- encodedImage
Strings aus meiner entfernten Datenbank ( ist der String, der das Image mit Base64 darstellt):
profileImage = (ImageView)findViewById(R.id.profileImage);
byte[] imageAsBytes=null;
try {
imageAsBytes = Base64.decode(encodedImage.getBytes());
} catch (IOException e) {e.printStackTrace();}
profileImage.setImageBitmap(
BitmapFactory.decodeByteArray(imageAsBytes, 0, imageAsBytes.length)
);
profileImage ist meine ImageView
Ok, aber ich muss die Größe dieses Bildes ändern, bevor ich es ImageView
in meinem Layout anzeigen kann. Ich muss die Größe auf 120x120 ändern.
Kann mir jemand den Code sagen, um die Größe zu ändern?
Die gefundenen Beispiele konnten nicht auf eine Bitmap mit Base64-Zeichenfolge angewendet werden.
Antworten:
Veränderung:
Zu:
quelle
BEARBEITEN: Wie von @aveschini vorgeschlagen, habe ich
bm.recycle();
für Speicherlecks hinzugefügt . Bitte beachten Sie, dass Sie, wenn Sie das vorherige Objekt für andere Zwecke verwenden, entsprechend vorgehen müssen.quelle
public Bitmap getResizedBitmap(Bitmap bm, int newWidth, int newHeight)
. Ich habe verdammt viel Zeit damit verbracht, es herauszufinden. ; PWenn Sie bereits eine Bitmap haben, können Sie die Größe des folgenden Codes verwenden:
quelle
Skala basierend auf dem Seitenverhältnis :
Um die Höhe als Basis anstelle der Breite zu verwenden, ändern Sie zu:
quelle
Skalieren Sie eine Bitmap mit einer maximalen Zielgröße und -breite unter Beibehaltung des Seitenverhältnisses:
quelle
Versuchen Sie diesen Code:
Ich hoffe es ist nützlich.
quelle
Jemand fragte, wie das Seitenverhältnis in dieser Situation beibehalten werden soll:
Berechnen Sie den Faktor, den Sie für die Skalierung verwenden, und verwenden Sie ihn für beide Dimensionen. Angenommen, Sie möchten, dass ein Bild 20% der Bildschirmhöhe hat
Um die Bildschirmauflösung zu erhalten, haben Sie folgende Lösung: Abrufen der Bildschirmabmessungen in Pixel
quelle
Versuchen Sie Folgendes: Diese Funktion ändert die Größe einer Bitmap proportional. Wenn der letzte Parameter auf "X" gesetzt
newDimensionXorY
ist, wird dies als neue Breite und bei "Y" als neue Höhe behandelt.quelle
quelle
quelle
quelle
Ab API 19 sind Bitmap setWidth (int width) und setHeight (int height) vorhanden. http://developer.android.com/reference/android/graphics/Bitmap.html
quelle
Bitmap-Größe basierend auf einer beliebigen Anzeigegröße
quelle
Obwohl die akzeptierte Antwort korrekt ist, wird die Größe nicht geändert,
Bitmap
indem das gleiche Seitenverhältnis beibehalten wird . Wenn Sie nach einer Methode suchen, deren GrößeBitmap
bei gleichem Seitenverhältnis geändert werden kann, können Sie die folgende Dienstprogrammfunktion verwenden. Die Verwendungsdetails und Erläuterungen zur Funktion finden Sie unter diesem Link .quelle
quelle
Das Seitenverhältnis beibehalten,
quelle