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