雖然上面的大多數答案提供了一種方法來實現這一點,但已經有一種內置的方法來實現這一點,它是一行代碼(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?belowpublic?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);public static Bitmap extractThumbnail(Bitmap source,int width,int height)
在API級別8中添加創建所需大小的居中位圖。
參數source原始位圖源寬度目標寬度高度目標高度
在使用接受的答案時,我有時會出現內存錯誤,并且使用ThumbnailUtils為我解決了這些問題。此外,這更清潔,更可重復使用。