Während die meisten der oben genannten Antworten eine Möglichkeit bieten, dies zu tun, gibt es bereits eine integrierte Möglichkeit, dies zu erreichen, und es handelt sich um eine Codezeile ( ThumbnailUtils.extractThumbnail()
)
int dimension = getSquareCropDimensionForBitmap(bitmap);
bitmap = ThumbnailUtils.extractThumbnail(bitmap, dimension, dimension);
...
//I added this method because people keep asking how
//to calculate the dimensions of the bitmap...see comments below
public int getSquareCropDimensionForBitmap(Bitmap bitmap)
{
//use the smallest dimension of the image to crop to
return Math.min(bitmap.getWidth(), bitmap.getHeight());
}
Wenn Sie möchten, dass das Bitmap-Objekt recycelt wird, können Sie Optionen übergeben, die dies ermöglichen:
bitmap = ThumbnailUtils.extractThumbnail(bitmap, dimension, dimension, ThumbnailUtils.OPTIONS_RECYCLE_INPUT);
Von: ThumbnailUtils-Dokumentation
public static Bitmap extractThumbnail (Bitmap-Quelle, int width, int height)
In API-Ebene 8 hinzugefügt Erstellt eine zentrierte Bitmap mit der gewünschten Größe.
Parameter Quelle Original-Bitmap-Quellbreite Zielbreite Höhe Zielhöhe
Bei der Verwendung der akzeptierten Antwort kam es manchmal zu Speicherfehlern, und die Verwendung von ThumbnailUtils löste diese Probleme für mich. Außerdem ist dies viel sauberer und wiederverwendbarer.