Sementara sebagian besar jawaban di atas menyediakan cara untuk melakukan ini, sudah ada cara bawaan untuk mencapai ini dan ini 1 baris kode ( 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());
}
Jika Anda ingin objek bitmap didaur ulang, Anda bisa meneruskan opsi yang membuatnya:
bitmap = ThumbnailUtils.extractThumbnail(bitmap, dimension, dimension, ThumbnailUtils.OPTIONS_RECYCLE_INPUT);
Dari: Dokumentasi ThumbnailUtils
mengekstrak Bitmap statis publikThumbnail (sumber Bitmap, lebar int, tinggi int)
Ditambahkan di API level 8 Membuat bitmap terpusat dengan ukuran yang diinginkan.
Sumber sumber, sumber bitmap asli, lebar ditargetkan, tinggi, tinggi, dan tinggi yang ditargetkan
Saya keluar dari kesalahan memori kadang-kadang ketika menggunakan jawaban yang diterima, dan menggunakan ThumbnailUtils menyelesaikan masalah tersebut untuk saya. Plus, ini jauh lebih bersih dan lebih dapat digunakan kembali.