網路載入圖片型別變成bitmap
阿新 • • 發佈:2019-02-17
網路載入圖片有很多框架,使用簡單,避免開發者走彎路。這裡我使用的是picasso框架,這裡簡單介紹下:
因為我專案中需要把網路圖片變成bitmap,所有我這裡就說一下我使用picasso時,遇到的一些問題,與最後怎麼解決的方法。
picasso這個框架有提供2個方法,可以時網路圖片變成bitmap形式。
一:
Bitmap bitmap=Picasso.with(GalleryActivity.this).load(data.get(i)).get();這個方法是可以使用的,它的原始碼我也去檢視過,返回的是Bitmap型別。但是你使用它會報錯,我在網上百度,google尋求了一些幫助,但是還是沒有知道它到底為什麼出問題。因為時間有點緊,我沒有去繼續深究,就馬上找到了第二種方法。
二:
這個方法只適用於小於1M的網路圖片,大於1M的圖片就無法顯示。最開始我以為是picasso緩衝出現問題,不能超過1M,所有我在 picasso後面添加了
.tag(context).memoryPolicy(MemoryPolicy.NO_STORE,MemoryPolicy.NO_CACHE).fit().config(Bitmap.Config.RGB_565)這些程式碼的意義,你們可以去百度下picasso框架了解下,這裡就不做詳細說明,這些程式碼大概的意思是,不緩衝在手機內,不透明圖片可以加快顯示之類的,其實說了這麼多,這些其實是picasso的圖片優化處理。
這些程式碼寫上去,我重新執行app,錯誤依然存在,無法去解決。只能把圖片更改小掉才能正在使用,就是把大小縮小到1M以內,它的bitmap才能正在顯示圖片(這是一些網友的解釋,我沒有去驗證,通過一些資料查詢上來看,還是蠻可靠的)。
三:
這個方法,我親自測試是可以使用的。
它是直接把網路圖片通過inputstream讀取出來,再用bitmap形式顯示,訪問比較快捷.
由於程式碼簡單,我也不太去細說了,看程式碼就ok,這個也是我找了蠻久才發現的方法。雖然不是用picasso框架來實現,但是我們不能總是依賴框架鑽牛角尖,picasso框架很強大,但是也有它弱點的存在,不可能什麼都完美的解決我們的要求。我們要用其長度就ok了。