1. 程式人生 > >Android載入圖片 Universal-Image-Loader圖片快取問題

Android載入圖片 Universal-Image-Loader圖片快取問題

        開發中大部分情況下我們需要快取圖片,用imageLoader兩步實現載入網路圖片後,快取到記憶體以及sd卡.再次讀取該圖片時先從記憶體找,有則直接載入,沒有則從sd卡找,再沒有則讀網路,這樣實現了三級快取.

1.初始化配置,ImageLoader是單例模式,初始化一次,以後再用就getInstance()獲取到即可,我們需要在第一次初始化時進行配置.

File cacheDir = StorageUtils.getOwnCacheDirectory(this, "cpgame/Cache");
ImageLoaderConfiguration config = new ImageLoaderConfiguration
        .Builder(this)
        .memoryCacheExtraOptions(480, 800) // maxwidth, max height,即儲存的每個快取檔案的最大長寬
        .threadPoolSize(3)//執行緒池內載入的數量
        .threadPriority(Thread.NORM_PRIORITY -2)
        .denyCacheImageMultipleSizesInMemory()
        .memoryCache(new UsingFreqLimitedMemoryCache(2* 1024 * 1024)) // You can pass your own memory cache implementation/你可以通過自己的記憶體快取實現
        .memoryCacheSize(2 * 1024 * 1024)
        .diskCacheSize(50 * 1024 * 1024)
        .diskCacheFileNameGenerator(new Md5FileNameGenerator())//將儲存的時候的URI名稱用MD5 加密
        .tasksProcessingOrder(QueueProcessingType.LIFO)
        .diskCacheFileCount(100) //快取的檔案數量
        .diskCache(new UnlimitedDiskCache(cacheDir))//自定義快取路徑
        .defaultDisplayImageOptions(DisplayImageOptions.createSimple())
        .imageDownloader(new BaseImageDownloader(this,5 * 1000, 30 * 1000)) // connectTimeout (5 s), readTimeout (30 s)超時時間
        .writeDebugLogs() // Remove for releaseapp
        .build();//開始構建
ImageLoader.getInstance().init(config);
這裡需要設定memoryCache和diskCache的引數.
    2.使用時需要設定顯示的配置
DisplayImageOptions options = new DisplayImageOptions.Builder()
        .showImageOnLoading(R.drawable.ic_stub) // resource or drawable
        .showImageForEmptyUri(R.drawable.ic_empty) // resource or drawable
        .showImageOnFail(R.drawable.ic_error) // resource or drawable
        .resetViewBeforeLoading(false)  // default
        .delayBeforeLoading(1000)
        .cacheInMemory(true) 
        .cacheOnDisk(true)
        .considerExifParams(false) // default
        .imageScaleType(ImageScaleType.IN_SAMPLE_POWER_OF_2) // default
        .bitmapConfig(Bitmap.Config.ARGB_8888) // default
        .displayer(new SimpleBitmapDisplayer()) // default
        .handler(new Handler()) // default
        .build();
ImageLoader.getInstance().displayImage(Configure.prefix+"/static/speedtest.png",iv,options);
其中cacheInMemory(true) 和cacheOnDisk(true)必須設定,目的是載入網路圖片後進行快取.
     3.清除快取.如果需要清除快取的話呼叫clearMemoryCache()和clearDiskCache()即可.
ImageLoader.getInstance().clearMemoryCache();
ImageLoader.getInstance().clearDiskCache();





相關推薦

Android載入圖片 Universal-Image-Loader圖片快取問題

        開發中大部分情況下我們需要快取圖片,用imageLoader兩步實現載入網路圖片後,快取到記憶體以及sd卡.再次讀取該圖片時先從記憶體找,有則直接載入,沒有則從sd卡找,再沒有則讀網路,這樣實現了三級快取. 1.初始化配置,ImageLoader是單例模式,

Android中使用Universal-Image-Loader圖片快取

ImageLoader 是最早開源的 Android 圖片快取庫, 強大的快取機制, 早期被廣泛 Android 應用使用, 至今仍然有很多 Android 開發者在使用。 GitHub地址:

android--------Universal-Image-Loader圖片載入框架和結合LruCache快取圖片

本部落格包含包含Android-Universal-Image-Loader 網路圖片載入框架實現圖片載入和結合universal-image-loader與LruCache來自定義快取圖片,可以設定快取與不快取。 Android-Universal-Image-Load

Android 使用圖片異步載入框架Universal Image Loader的問題

loader mar fill splay con iss text blog option 使用的Jar包 問題: optionsm = new DisplayImageOptions.Builder() .displayer(new

Android 開源框架Universal-Image-Loader完全解析(二)--- 圖片快取策略詳解

本篇文章繼續為大家介紹Universal-Image-Loader這個開源的圖片載入框架,介紹的是圖片快取策略方面的,如果大家對這個開源框架的使用還不瞭解,大家可以看看我之前寫的一篇文章Android 開源框架Universal-Image-Loader完全解析(一)---

Android-Universal-Image-Loader 圖片非同步載入類庫的使用(超詳細配置)

      這個圖片非同步載入並快取的類已經被很多開發者所使用,是最常用的幾個開源庫之一,主流的應用,隨便反編譯幾個火的專案,都可以見到它的身影。        可是有的人並不知道如何去使用這庫如何進行配置,網上查到的資訊對於剛接觸的人來說可能太少了,下面我就把我使用過程中

使用 Android-Universal-Image-Loader 圖片載入框架,載入圖片

特點 多執行緒下載圖片,圖片可以來源於網路,檔案系統,專案資料夾assets中以及drawable中等 支援隨意的配置ImageLoader,例如執行緒池,圖片下載器,記憶體快取策略,硬碟快取策略,圖片顯示選項以及其他的一些配置 支援圖片

Universal-Image-Loader圖片非同步載入類庫

這是 一個開源的Android關於下載顯示圖片的工具類,在這個下載包裡面jar檔案,用於我們匯入專案使用,具體使用方法在包裡面也含有。下面是一個例子: 雙擊程式碼複製 1 2 <uses-permissionandroid:name="android.pe

分析Android-Universal-Image-Loader快取處理機制

    最近看了UIL中的快取實現,才發現其實這個東西不難,沒有太多的程序排程,沒有各種記憶體讀取控制機制、沒有各種異常處理。反正UIL中不單程式碼寫的簡單,連處理都簡單。但是這個類庫這麼好用,又有這麼多人用,那麼非常有必要看看他是怎麼實現的。先了解UIL中快取流程的原理

Android 開源框架Universal-Image-Loader完全解析(一)--- 基本介紹及使用

                大家好!差不多兩個來月沒有寫文章了,前段時間也是在忙換工作的事,準備筆試面試什麼的事情,現在新工作找好了,新工作自己也比較滿意,唯一遺憾的就是自己要去一個新的城市,新的環境新的開始,希望自己能儘快的適應新環境,現在在準備交接的事情,自己也有一些時間了,所以就繼續給大家分享And

Universal-Image-Loaderandroid-Volley,Picasso、Fresco和Glide五大Android開源元件載入網路圖片的優缺點比較

關於 Fresco Facebook最近推出了一款用於Android應用中展示圖片的強大圖片庫Fresco,它能夠從網路、本地儲存和本地資源中載入圖片。而且,為了節省資料和CPU,它擁有三級快取。 Fresco 是一個強大的圖片載入元件。 Fresco 中設計有一個叫做 image pipeline

Android Universal-Image-Loader,Volley,Picasso、Fresco和Glide五大Android開源元件載入網路圖片的優缺點比較

關於 Fresco Facebook最近推出了一款用於Android應用中展示圖片的強大圖片庫Fresco,它能夠從網路、本地儲存和本地資源中載入圖片。而且,為了節省資料和CPU,它擁有三級快取。 Fresco 是一個強大的圖片載入元件。 Fresco 中設計有一個叫做 image pipeline

Android-Universal-Image-Loader 學習筆記(二)載入圖片原理

public void displayImage(String uri, ImageAware imageAware, DisplayImageOptions options, ImageLoadingListener listener, ImageLoadingProgressListener pro

Universal-Image-Loaderandroid圖片快取

詳細資料整理請加群284568173自行下載pdf 專案介紹: Android上最讓人頭疼的莫過於從網路獲取圖片、顯示、回收,任何一個環節有問題都可能直接OOM,這個專案或許能幫到你。Universal Image Loader for Android的目的是為了實現

universal-image-loader載入圖片,程式異常崩潰,圖片不在載入顯示問題

主要是發現universal-image-loader 用來在載入圖片的時候,如果程式異常崩潰了,那麼在自動重啟程式的時候,universal-image-loader會出現在快取讀取圖片的問題,解決方式為 new DisplayImageOptions.Builde

Android-Image-Loader 圖片非同步載入類庫的使用超(詳細配置)

       這個圖片非同步載入並快取的類已經被很多開發者所使用,是最常用的幾個開源庫之一,主流的應用,隨便反編譯幾個火的專案,都可以見到它的身影。        可是有的人並不知道如何去使用這庫如何進行配置,網上查到的資訊對於剛接觸的人來說可能太少了,下面我就把我使用

Universal-Image-Loader圖片載入流程原始碼分析

概述 Universal-Image-Loader是經典的圖片載入框架,雖然現在該專案不再維護,但對於初學者依舊是值得學習的開源專案之一,本文就該框架的載入圖片流程做簡要梳理,希望讀者有所收穫。 該文參考了【codeKK】 Android Universal

開源圖片載入庫universal-image-loader使用

ImageLoader | | - init(ImageLoaderConfiguration) | - isInited() | - displayImage(...) | - loadImage(...)

安卓圖片外掛Universal-Image-Loader解析

連結地址 https://www.cnblogs.com/tianzhijiexian/p/4034215.html http

開源項目Universal Image Loader for Android 說明文檔 (1) 簡單介紹

bst 成功 開源 ica ctu structure 使用 說明 由於  When developing applications for Android, one often facesthe problem of displa