Bitmap的使用 防止OOM異常

2021-06-17 14:24:21 字數 1256 閱讀 8623

public class mainactivity extends activity 

@override

protected void onactivityresult(int requestcode, int resultcode, intent data)

// options.injustdecodebounds = false; 表示解碼**本身

options.injustdecodebounds = false;

bit = bitmapfactory.decodefile(file.getabsolutepath(), options);

captruepic.setimagebitmap(bit);

}} catch (exception e)

}}

使用intent intent = new intent(mediastore.action_image_capture); 開啟camera

如果直接執行startactivityforresult(intent, requestcode);那麼在 onactivityresult(int requestcode, int resultcode, intent data)中的data引數會返回拍的**

使用bundle bundle = data.getextras();    

bitmap bit  = (bitmap)bundle.get("data");獲得

如果使用intent intent = new intent(mediastore.action_image_capture); 開啟camera

然後設定了intent.putextra(mediastore.extra_output, uri.fromfile(file));**儲存的檔案的uri  那麼在 onactivityresult(int requestcode, int resultcode, intent data)中的data引數不會返回拍的**,要想獲得**可以通過 bitmapfactory.decodefile(file.getabsolutepath(), options);

補充說明:

intent.putextra(mediastore.extra_output, uri.fromfile(file));

這句話中的mediastore.extra_output是為了告訴android裝置不要將返回的壓縮成很小的尺寸,而且它將告訴應用程式,你想將儲存在哪個位置。

bitmap的處理,盡量避免OOM

bitmap是乙個吃記憶體的大傢伙,如果使用不當,那麼程式就會oom常伴了。因此,這篇文章主要介紹幾個方法來控制好bitmap對記憶體的占用。第一種方法 按比例縮小bitmap private bitmap getbitmap string srcpath else if w h h hh if s...

處理Bitmap出現oom的異常

大小 直接使用imageview顯示bitmap會占用較多資源,特別是較大的時候,可能導致崩潰。使用bitmapfactory.options設定insamplesize,這樣做可以減少對系統資源的要求。屬性值insamplesize表示縮圖大小為原始大小的幾分之一,即如果這個值為2,則取出的縮圖的...

關於使用BitMap的小結

建立bitmap bitmap bm null bm bitmap.createbitmap w,h,config.alpha 8 每個畫素佔乙個位元組 8位 bm bitmap.createbitmap w,h,config.argb 4444 兩個位元組 bm bitmap.createbitm...