andorid 報錯bindertransation

原因是 官方規定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; 
		
		}

這樣處理後,報錯是不會瞭,但是不夠智能,美觀,需改進

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *