-
Android異步加載的總結(jié)。除了LruCache,我們還可以使用DiskLruCache這個第三方的類來實現(xiàn)“二級緩存”。異步加載不僅僅是獲取網(wǎng)絡資源,我們可以加所有耗時的操作都看成異步加載,所有通過耗時的操作獲取的結(jié)果我們都可以通過緩存來提高效率,比如我們可以利用這里的LruCache和DiskLruCache(這個緩存一般是用于緩存從網(wǎng)絡獲取的圖片,視頻等大的資源,這個時候我們一般和LruCache結(jié)合使用),使用Cache有個缺點,就是我們不能保證我們的數(shù)據(jù)是實時的,所以在realtime需求高的應用中,我們不應該使用緩存。而對于本地資源,我們很少用緩存的,就算是操作SQLite數(shù)據(jù)庫,我們也很少會用到LruCache,但是也有使用的。查看全部
-
我們將“預加載”放在onScroll方法中去進行,因為這個回調(diào)會在ListView啟動和繪制的時候被多次調(diào)用。為了保證我們的圖片加載是在ListView被繪制出來之后進行的,我們需要判斷visibleItemCount這個參數(shù)是否大于0。查看全部
-
當我們將加載圖片的控制權(quán)交給了onScrollStateChanged()這個回調(diào)函數(shù)之后,我們會遇到一個問題,當程序剛啟動的時候,我們的圖片是不會被加載的,原因在于一開始的時候onScrollStateChanged()這個回調(diào)函數(shù)是不會被調(diào)用的,所以我們需要對開始的圖片進行“預加載”。查看全部
-
ListView的進一步優(yōu)化查看全部
-
LruCache是將圖片緩存在內(nèi)存中,而還有個第三方的類DiskLruCache來將圖片緩存到手機的Disk上,而我們大型的app,一般都是將LruCache和DiskLruCache結(jié)合起來使用,形成一個memory hierarchy。Perfect??!查看全部
-
對于從網(wǎng)絡上獲取圖片這種需求,我們都要使用Cache來將我們的圖片緩存起來,尤其是對于ListVIew這種,不能每次我們滑動ListView就重新從網(wǎng)上下載圖片,這樣會很浪費資源而且浪費手機的流量。在Android中,已經(jīng)為我們提供了一個用于緩存的類LruCache。我們可以使用這個類來實現(xiàn)我們對于圖片資源的緩存。查看全部
-
Android提供了LruCache類來實現(xiàn)這個緩存算法。查看全部
-
在進行圖片的異步加載的時候,我們往往會為圖片設置一個tag,這個tag就是圖片的url(uri),去防止圖片的加載由于ListView的緩存機制造成的加載之前圖片的情況發(fā)生。查看全部
-
從網(wǎng)絡上通過URL String獲取圖片并且轉(zhuǎn)成Bitmap的方法查看全部
-
異步加載的第二層,對從網(wǎng)絡上獲取圖片這個過程實現(xiàn)異步化——異步加載網(wǎng)絡圖片。查看全部
-
異步加載的第一層:通過AsyncTask訪問網(wǎng)絡,獲取json或者XML字符串,然后解析他們產(chǎn)生若干object,將每個object放入到ListVIew中(adapter需要使用view holder pattern去寫),AsyncTask中的訪問網(wǎng)絡獲取json或者XML字符串,并且產(chǎn)生若干個object的工作就是在doInBackground()方法中進行的,所以這個方法總的來說就是用來準備數(shù)據(jù)源的。查看全部
-
在Android中我們使用JSONObject類來解析json字符串。查看全部
-
通過URL或者網(wǎng)絡資源的方法查看全部
-
Android異步加載查看全部
-
我跟著吧代碼打完了發(fā)現(xiàn)最后圖片沒顯示出來,后來又看了一遍視頻,確認沒少敲代碼,但還是顯示不出來,郁悶,不知道哪里錯了。查看全部
舉報
0/150
提交
取消