前不久看到有人在群里問,他使用glide加載圖片,服務(wù)器上面的圖片改變了,但是在客戶端上面顯示的還是改變前的圖片,當(dāng)時(shí)我沒在意,后來想了一下,才想起來,glide自己內(nèi)部是有自己的緩存機(jī)制,對(duì)于同一個(gè)url,服務(wù)器的圖片改變了,但是它還是走的是自己的緩存
解決的方法: 就交給服務(wù)端的哥們,叫他們別只改圖片,每次返回的請(qǐng)返回不一樣的url就好了.這樣就能完美的解決.
順便說說對(duì)于Glide的簡(jiǎn)單理解.
圖片加載框架,我常用的是picasso和glide,這2個(gè)使用方法基本上差不多,但是他們的緩存機(jī)制是不一樣,
我之前使用picasso導(dǎo)致過oom后來我就好好研究了一下picasso,發(fā)現(xiàn)picasso他是將整個(gè)圖片full size,完全下載下來了然后根據(jù)imageview尺寸,再去得到resize再去設(shè)置到imageview上面,他是直接將圖片緩存到內(nèi)存,所以會(huì)導(dǎo)致oom.后來我使用了LRUcache解決了oom,但是我發(fā)現(xiàn)glide他是先下載圖片,然后改變圖片大小,以適應(yīng)imageview的要求,然后再緩存的,所以如果我們是下載同一張圖片,但是是不用的尺寸,在內(nèi)存中就會(huì)存在2份Glide默認(rèn)使用的是RGB-555的設(shè)定,而picasso是ARGB_8888的設(shè)定,ARGB清晰度肯定是高一些,第一次加載圖片的時(shí)候picasso是將full size加載到內(nèi)存中而glide是需要改變圖片的大小然后設(shè)置到imageview這個(gè)就會(huì)消耗時(shí)間,在這里glide會(huì)消耗時(shí)間,但是在我們加載到內(nèi)存中之后,glide顯示速度就會(huì)比picasso快,Picasso從緩存中拿到的圖片,還要先去 resize 后,然后設(shè)定給 imageView,而gilde就直接設(shè)置給imageview.還有就是glide可以加載GIF圖片,picasso不能
純理論,圖片處理框架也沒什么好說的,拿來就可以用簡(jiǎn)單粗暴,不過還是要注意的是它們的特點(diǎn),不然就會(huì)遇到坑,
對(duì)于一些使用,推薦一個(gè)帖子 http://www.lxweimin.com/p/c9efd313e79e