用于異步加載緩存圖片。
1.首先在Application中對imageLoader的全局相關(guān)參數(shù)進(jìn)行初始化。包含線程數(shù)、緩存大小等。該方法為ImageLoaderConfiguration.
<pre>
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
// Create global configuration and initialize ImageLoader with this configuration
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(getApplicationContext())
...
.build();
ImageLoader.getInstance().init(config);
}
}
</pre>
2.loadimage及diaplayimage是針對的每一次要加載圖片時的對象
ImageLoader.getInstance().loadimage(....)//其中內(nèi)部有一個參數(shù)需要傳遞xml中的imageview的id,即表示圖片顯示的位置
ImageLoader.getInstance().diaplayimage(....)
3.加載圖片的uri包含網(wǎng)絡(luò),sdCard,ContentProvider等。不同的是每個uri不同。例如:
String imageUri = "http://site.com/image.png"; // from Web
String imageUri = "file:///mnt/sdcard/image.png"; // from SD card
String imageUri = "content://media/external/audio/albumart/13"; // from content provider
String imageUri = "assets://image.png"; // from assets
String imageUri = "drawable://" + R.drawable.image; // from drawables (only images, non-9patch)
4.本身該方法具有多開線程池的功能。具有緩存機(jī)制及簡單的捕獲異常,能夠避免產(chǎn)生一定的OOM,但有可能也會因加載產(chǎn)生OOM。
4.1 針對該問題,在使用該方法時設(shè)置線程池數(shù)threadPoolSize不易過多,建議不超過5個;
4.2 內(nèi)存緩存為memoryCache(new WeakMemoryCache()) 或者不使用內(nèi)存緩存
4.3 在DisplayImageOptions選項(xiàng)中配置bitmapConfig為Bitmap.Config.RGB_565,因?yàn)槟J(rèn)是ARGB_8888, 使用RGB_565會比使用ARGB_8888少消耗2倍的內(nèi)存
4.4 在DisplayImageOptions選項(xiàng)中設(shè)置.imageScaleType(ImageScaleType.IN_SAMPLE_INT)或者imageScaleType(ImageScaleType.EXACTLY)
此外建議使用displayImage()方法去加載圖片,loadImage()是將圖片對象回調(diào)到ImageLoadingListener接口的onLoadingComplete()方法中,需要我們手動去設(shè)置到ImageView上面,displayImage()方法中,對ImageView對象使用的是Weak references,方便垃圾回收器回收ImageView對象,如果我們要加載固定大小的圖片的時候,使用loadImage()方法需要傳遞一個ImageSize對象,而displayImage()方法會根據(jù)ImageView對象的測量值,或者android:layout_width及android:layout_height設(shè)定的值,或者android:maxWidth and/or android:maxHeight設(shè)定的值來裁剪圖片
imageLoader
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
- Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
- 一般一個ImageLoader需具備以下功能:· 圖片壓縮· 內(nèi)存緩存· 磁盤緩存· 網(wǎng)絡(luò)拉取圖片· 圖片的同步加...
- *4月22日第二次辟谷,很欣慰獲得老師的批準(zhǔn)符合辟谷14天的條件! 懷著欣喜若狂的狀態(tài)來到課堂,還有一些忐忑不安!...