原因是 官方規定intent傳遞時,數據不能超過1M
The Binder transaction buffer has a limited fixed size, currently 1Mb, which is shared by all transactions in progress for
the process. (https://developer.android.com/intl/zh-cn/reference/android/os/TransactionTooLargeException.html)
所以必須對圖進行縮放處理
private Bitmap zoombitmap(Bitmap tmpBitmap) { int rawHeight = tmpBitmap.getHeight(); int rawWidth = tmpBitmap.getWidth(); System.out.println("原圖高:"+rawHeight+"寬:"+rawWidth); // 設定圖片新的高寬,根據圖片長寬進行設置 縮略圖長寬 int newHeight=100; int newWidth=200; // 計算縮放因子 float heightScale = ((float) newHeight) / rawHeight; float widthScale = ((float) newWidth) / rawWidth; // 新建立矩陣 Matrix matrix = new Matrix(); matrix.postScale(heightScale, widthScale); Bitmap resizeBmp =Bitmap.createBitmap(tmpBitmap,0,0,rawWidth,rawHeight,matrix,true); return resizeBmp; }
這樣處理後,報錯是不會瞭,但是不夠智能,美觀,需改進