Android學(xué)習(xí)——引用圖片導(dǎo)致內(nèi)存溢出java.lang.OutOfMemoryError

今天遇到這個問題就是從一個輸入流里調(diào)用BitmapFactory.decodeFile(name)得到一個bitmap報的錯。第一次調(diào)用都沒問題,第二次再次調(diào)用就會報上面那個內(nèi)存溢出的問題。而且有的手機報有的手機不報。研究了半天終于解決。首先分析了下原因,應(yīng)該是圖片占用的內(nèi)存超過了系統(tǒng)虛擬機可分配的最大限制。不同手機可能分配的最大值不一樣。后來找到解決辦法主要是設(shè)置BitmapFactory.Options。

成都網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計、成都網(wǎng)站建設(shè)、微信開發(fā)、小程序開發(fā)、集團成都定制網(wǎng)頁設(shè)計等服務(wù)項目。核心團隊均擁有互聯(lián)網(wǎng)行業(yè)多年經(jīng)驗,服務(wù)眾多知名企業(yè)客戶;涵蓋的客戶類型包括:主動防護網(wǎng)等眾多領(lǐng)域,積累了大量豐富的經(jīng)驗,同時也獲得了客戶的一致認可!

 
 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();

本文名稱:Android學(xué)習(xí)——引用圖片導(dǎo)致內(nèi)存溢出java.lang.OutOfMemoryError
文章來源:http://bm7419.com/article30/pcicso.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、域名注冊、自適應(yīng)網(wǎng)站網(wǎng)站排名、做網(wǎng)站關(guān)鍵詞優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站