今天遇到這個(gè)問(wèn)題就是從一個(gè)輸入流里調(diào)用BitmapFactory.decodeFile(name)得到一個(gè)bitmap報(bào)的錯(cuò)。第一次調(diào)用都沒(méi)問(wèn)題,第二次再次調(diào)用就會(huì)報(bào)上面那個(gè)內(nèi)存溢出的問(wèn)題。而且有的手機(jī)報(bào)有的手機(jī)不報(bào)。研究了半天終于解決。首先分析了下原因,應(yīng)該是圖片占用的內(nèi)存超過(guò)了系統(tǒng)虛擬機(jī)可分配的最大限制。不同手機(jī)可能分配的最大值不一樣。后來(lái)找到解決辦法主要是設(shè)置BitmapFactory.Options。
成都網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)!專(zhuān)注于網(wǎng)頁(yè)設(shè)計(jì)、成都網(wǎng)站建設(shè)、微信開(kāi)發(fā)、小程序開(kāi)發(fā)、集團(tuán)成都定制網(wǎng)頁(yè)設(shè)計(jì)等服務(wù)項(xiàng)目。核心團(tuán)隊(duì)均擁有互聯(lián)網(wǎng)行業(yè)多年經(jīng)驗(yàn),服務(wù)眾多知名企業(yè)客戶(hù);涵蓋的客戶(hù)類(lèi)型包括:主動(dòng)防護(hù)網(wǎng)等眾多領(lǐng)域,積累了大量豐富的經(jīng)驗(yàn),同時(shí)也獲得了客戶(hù)的一致認(rèn)可!
BitmapFactory.Options option = new BitmapFactory.Options(); option.inSampleSize = 4; try { Bitmap bmp = BitmapFactory.decodeFile(Path,option); holder.icon.setImageBitmap(bmp); } catch (OutOfMemoryError err) {}
有的說(shuō)要加上bitmapOptions.inJustDecodeBounds = true;但是我加上后得到的bitmap就為null。去掉之后就可以。按照上面的方法就解決問(wèn)題了。最好把bitmap在不用的時(shí)候回收一下:
if (bitmap != null && !bitmap.isRecycled())
bitmap.recycle();