399 Stimmen

Wie ändert man die Größe einer Bitmap in Android?

Ich habe eine Bitmap von einem Base64-String aus meiner Remote-Datenbank genommen, ( encodedImage ist die Zeichenkette, die das Bild 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 mein ImageView

Ok, aber ich muss die Größe dieses Bildes ändern, bevor ich es auf meiner ImageView meines Layouts. Ich muss die Größe auf 120x120 ändern.

Kann mir jemand den Code für die Größenänderung nennen?

Die Beispiele, die ich gefunden habe, konnten nicht auf eine Bitmap mit Base64-String angewendet werden.

0 Stimmen

Mögliches Duplikat von Größe der Bitmap in Android ändern

0 Stimmen

@SagarPilkhwal diese Frage wurde zuerst gestellt

3voto

Bitmap-Größenanpassung basierend auf einer beliebigen Displaygröße

public Bitmap bitmapResize(Bitmap imageBitmap) {

    Bitmap bitmap = imageBitmap;
    float heightbmp = bitmap.getHeight();
    float widthbmp = bitmap.getWidth();

    // Get Screen width
    DisplayMetrics displaymetrics = new DisplayMetrics();
    this.getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
    float height = displaymetrics.heightPixels / 3;
    float width = displaymetrics.widthPixels / 3;

    int convertHeight = (int) hight, convertWidth = (int) width;

    // higher
    if (heightbmp > height) {
        convertHeight = (int) height - 20;
        bitmap = Bitmap.createScaledBitmap(bitmap, convertWidth,
                convertHighet, true);
    }

    // wider
    if (widthbmp > width) {
        convertWidth = (int) width - 20;
        bitmap = Bitmap.createScaledBitmap(bitmap, convertWidth,
                convertHeight, true);
    }

    return bitmap;
}

3voto

user2288580 Punkte 2000

Versuchen Sie dies: Diese Funktion ändert die Größe einer Bitmap proportional. Wenn der letzte Parameter auf "X" gesetzt wird, wird die newDimensionXorY wird als neue Breite und bei Einstellung auf "Y" als neue Höhe behandelt.

public Bitmap getProportionalBitmap(Bitmap bitmap, 
                                    int newDimensionXorY, 
                                    String XorY) {
    if (bitmap == null) {
        return null;
    }

    float xyRatio = 0;
    int newWidth = 0;
    int newHeight = 0;

    if (XorY.toLowerCase().equals("x")) {
        xyRatio = (float) newDimensionXorY / bitmap.getWidth();
        newHeight = (int) (bitmap.getHeight() * xyRatio);
        bitmap = Bitmap.createScaledBitmap(
            bitmap, newDimensionXorY, newHeight, true);
    } else if (XorY.toLowerCase().equals("y")) {
        xyRatio = (float) newDimensionXorY / bitmap.getHeight();
        newWidth = (int) (bitmap.getWidth() * xyRatio);
        bitmap = Bitmap.createScaledBitmap(
            bitmap, newWidth, newDimensionXorY, true);
    }
    return bitmap;
}

3voto

Rajkamal Punkte 395
profileImage.setImageBitmap(
    Bitmap.createScaledBitmap(
        BitmapFactory.decodeByteArray(imageAsBytes, 0, imageAsBytes.length), 
        80, 80, false
    )
);

1voto

afathman Punkte 5835

Ab API 19 gibt es die Bitmap setWidth(int width) und setHeight(int height). http://developer.Android.com/reference/Android/graphics/Bitmap.html

1voto

Faakhir Punkte 3476
/**
 * Kotlin method for Bitmap scaling
 * @param bitmap the bitmap to be scaled
 * @param pixel  the target pixel size
 * @param width  the width
 * @param height the height
 * @param max    the max(height, width)
 * @return the scaled bitmap
 */
fun scaleBitmap(bitmap:Bitmap, pixel:Float, width:Int, height:Int, max:Int):Bitmap {
    val scale = px / max
    val h = Math.round(scale * height)
    val w = Math.round(scale * width)
    return Bitmap.createScaledBitmap(bitmap, w, h, true)
  }

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