您好,登錄后才能下訂單哦!
今天遇到這個問題就是從一個輸入流里調用BitmapFactory.decodeFile(name)得到一個bitmap報的錯。第一次調用都沒問題,第二次再次調用就會報上面那個內存溢出的問題。而且有的手機報有的手機不報。研究了半天終于解決。首先分析了下原因,應該是圖片占用的內存超過了系統虛擬機可分配的最大限制。不同手機可能分配的最大值不一樣。后來找到解決辦法主要是設置BitmapFactory.Options。
BitmapFactory.Options option = new BitmapFactory.Options(); option.inSampleSize = 4; try { Bitmap bmp = BitmapFactory.decodeFile(Path,option); holder.icon.setImageBitmap(bmp); } catch (OutOfMemoryError err) {}
有的說要加上bitmapOptions.inJustDecodeBounds = true;但是我加上后得到的bitmap就為null。去掉之后就可以。按照上面的方法就解決問題了。最好把bitmap在不用的時候回收一下:
if (bitmap != null && !bitmap.isRecycled())
bitmap.recycle();
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。