แม้ว่าคำตอบข้างต้นส่วนใหญ่จะเป็นวิธีการทำสิ่งนี้ แต่ก็มีวิธีการในการทำสิ่งนี้อยู่แล้วและเป็นรหัส 1 บรรทัด ( 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());
}
หากคุณต้องการให้วัตถุบิตแมปที่จะนำกลับมาใช้คุณสามารถผ่านตัวเลือกที่ทำให้มัน:
bitmap = ThumbnailUtils.extractThumbnail(bitmap, dimension, dimension, ThumbnailUtils.OPTIONS_RECYCLE_INPUT);
จาก: ThumbnailUtils เอกสารประกอบ
แยกบิตแมปแบบสาธารณะคงที่ Thumbnail (แหล่งบิตแมปความกว้าง int ความสูง int)
เพิ่มในระดับ API 8 สร้างบิตแมปกึ่งกลางของขนาดที่ต้องการ
พารามิเตอร์แหล่งต้นฉบับบิตแมปความกว้างของแหล่งความสูงของเป้าหมายความสูงของเป้าหมายความสูงของเป้าหมาย
บางครั้งฉันได้รับข้อผิดพลาดหน่วยความจำไม่เพียงพอเมื่อใช้คำตอบที่ยอมรับและการใช้ ThumbnailUtils จะแก้ไขปัญหาเหล่านั้นให้ฉันได้ นอกจากนี้ยังสะอาดและนำกลับมาใช้ใหม่ได้มากขึ้น