android bitmap記憶體處理

2021-06-25 19:19:48 字數 1051 閱讀 9542

程式中一次性載入多張,而且還要適應螢幕,這就造成記憶體緊張,程序會出現oom,特別是現在的手機解析度高達1920*1024,一張占用記憶體高達8m,首先要獲取原的高寬

//減少記憶體

bitmapfactory.options options = new bitmapfactory.options(); 

options.inpreferredconfig = bitmap.config.rgb_565;    

options.inpurgeable = true;  //設定可以被**

byte[12 * 1024];//聽說是開啟臨時儲存

options.ininputshareable = true; 

bitmap backgroudbitmap = bitmapfactory.decodestream(new fileinputstream(file),null,options);

然後可獲取高寬

float imgwidth = backgroudbitmap.getwidth();

float imgheight = backgroudbitmap.getheight();

// 取得想要縮放的matrix引數

matrix matrix = new matrix();

matrix.postscale(scalewidth, scaleheight);

// 得到新的

bitmap newbm = bitmap.createbitmap(backgroudbitmap, 0, 0,

(int) imgwidth, (int) imgheight, matrix, true);

在然後可以根據新的獲取大小並且用canvas畫圖了

現在原圖可以**了backgroudbitmap.recycle();

backgroudbitmap = null;

因為新的要設定成背景圖,不能現在**,要是縮小還好,要是放大則占用很大的記憶體,如果是1-3張還好,多了之後就會記憶體溢位了,大家有什麼好的方法代替createbitmap進行縮放,或者有什麼好的方法管理記憶體,大家共同學習進步。

android bitmap記憶體限制

doc displaying bitmaps efficiently 這篇是翻譯的,此次是實踐,是關於android系統的解碼的例項 文中說到 攝像頭在galaxynexus拍一張 有2592 1936畫素,如果bitmap使用argb 8888配置 2.3預設的 載入這張 到記憶體需要消耗約19m...

Android Bitmap應用收集

bitmap代表一張位圖,副檔名可以是.bmp或者.dib。點陣圖是windows標準格式圖形檔案,它將影象定義為由點 畫素 組成,每個點可以由多種色彩表示,包括2 4 8 16 24和32位色彩。例如,一幅1024 768解析度的32位真彩,其所佔儲存位元組數為 1024 768 32 8 307...

Android bitmap用法介紹

bitmap是android中重要的影象處理工具類,通過bitmap可以對影象進行剪下 旋轉 縮放等操作,同時還可以指定格式和壓縮質量儲存影象檔案。一 拿到乙個bitmap物件 檢視原始碼我們知道,bitmap被final修飾,因此不可以通過new來獲得乙個bitmap的例項,獲得乙個bitmap物...