Embora a maioria das respostas acima forneça uma maneira de fazer isso, já existe uma maneira interna de fazer isso e é uma linha de código ( 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());
}
Se você deseja que o objeto bitmap seja reciclado, pode passar opções que o tornam:
bitmap = ThumbnailUtils.extractThumbnail(bitmap, dimension, dimension, ThumbnailUtils.OPTIONS_RECYCLE_INPUT);
De: documentação ThumbnailUtils
public estático Bitmap extractThumbnail (fonte Bitmap, largura int, altura int)
Adicionado no nível 8 da API Cria um bitmap centralizado do tamanho desejado.
Parâmetros fonte largura de origem de bitmap original largura de destino altura de destino altura de destino
Às vezes, eu estava perdendo erros de memória ao usar a resposta aceita e o ThumbnailUtils resolveu esses problemas para mim. Além disso, isso é muito mais limpo e reutilizável.