# ![Logo](https://github.com/nostra13/Android-Universal-Image-Loader/raw/master/sample/res/drawable-mdpi/ic_launcher.png) Universal Image Loader for Android
This project aims to provide a reusable instrument for asynchronous image loading, caching and displaying. It is originally based on [Fedor Vlasov's project](https://github.com/thest1/LazyList) and has been vastly refactored and improved since then.
![Screenshot](https://github.com/nostra13/Android-Universal-Image-Loader/raw/master/UniversalImageLoader.png)
## Features
* Multithread image loading
* Possibility of wide tuning ImageLoader's configuration (thread executors, downlaoder, decoder, memory and disc cache, display image options, and others)
* Possibility of image caching in memory and/or on device's file sysytem (or SD card)
* Possibility to "listen" loading process
* Possibility to customize every display image call with separated options
* Widget support
Android 2.0+ support
## Downloads
* **[universal-image-loader-1.8.4.jar](https://github.com/nostra13/Android-Universal-Image-Loader/raw/master/downloads/universal-image-loader-1.8.4.jar)** (library; contains *.class files)
* **[universal-image-loader-1.8.4-sources.jar](https://github.com/nostra13/Android-Universal-Image-Loader/raw/master/downloads/universal-image-loader-1.8.4-sources.jar)** (sources; contains *.java files)
* **[universal-image-loader-1.8.4-javadoc.jar](https://github.com/nostra13/Android-Universal-Image-Loader/raw/master/downloads/universal-image-loader-1.8.4-javadoc.jar)** (Java docs; contains *.html files)
* **[universal-image-loader-1.8.4-with-sources.jar](https://github.com/nostra13/Android-Universal-Image-Loader/raw/master/downloads/universal-image-loader-1.8.4-with-sources.jar)** (library with sources inside; contains *.class and *.java files)<br />_Prefer to use this JAR so you can see Java docs in Eclipse tooltips._
* **[universal-image-loader-sample-1.8.4.apk](https://github.com/nostra13/Android-Universal-Image-Loader/raw/master/downloads/universal-image-loader-sample-1.8.4.apk)** (sample application)
Latest snapshot of the library - **[here](https://github.com/nostra13/Android-Universal-Image-Loader/tree/master/sample/libs)**
## Documentation*
* Universal Image Loader. Part 1 - Introduction [[RU](http://nostra13android.blogspot.com/2012/03/4-universal-image-loader-part-1.html) | [EN](http://www.intexsoft.com/blog/item/68-universal-image-loader-part-1.html)]
* Universal Image Loader. Part 2 - Configuration [[RU](http://nostra13android.blogspot.com/2012/03/5-universal-image-loader-part-2.html) | [EN](http://www.intexsoft.com/blog/item/72-universal-image-loader-part-2.html)]
* Universal Image Loader. Part 3 - Usage [[RU](http://nostra13android.blogspot.com/2012/03/6-universal-image-loader-part-3-usage.html) | [EN](http://www.intexsoft.com/blog/item/74-universal-image-loader-part-3.html)]
(*) a bit outdated
### [Changelog](https://github.com/nostra13/Android-Universal-Image-Loader/blob/master/CHANGELOG.md)
### User Support
1. Look into **[Useful Info](https://github.com/nostra13/Android-Universal-Image-Loader#useful-info)**
2. Search problem solution on **[StackOverFlow](http://stackoverflow.com/questions/tagged/universal-image-loader)**
3. Ask your own question on **[StackOverFlow](http://stackoverflow.com/questions/tagged/universal-image-loader)**.<br />
Be sure to mention following information in your question:
- UIL version (e.g. 1.8.4)
- Android version tested on (e.g. 2.1)
- your configuration (`ImageLoaderConfiguration`)
- display options (`DisplayImageOptions`)
- `getView()` method code of your adapter (if you use it)
- XML layout of your ImageView you load image into
**Bugs** and **feature requests** put **[here](https://github.com/nostra13/Android-Universal-Image-Loader/issues/new)**.<br />
If you have some **issues on migration** to newer library version - be sure to ask for help **[here](https://github.com/nostra13/Android-Universal-Image-Loader/issues/169)**
## Quick Setup
#### 1. Include library
**Manual:**
* [Download JAR](https://github.com/nostra13/Android-Universal-Image-Loader/raw/master/downloads/universal-image-loader-1.8.4-with-sources.jar)
* Put the JAR in the **libs** subfolder of your Android project
or
**Maven dependency:**
``` xml
<dependency>
<groupId>com.nostra13.universalimageloader</groupId>
<artifactId>universal-image-loader</artifactId>
<version>1.8.4</version>
</dependency>
```
#### 2. Android Manifest
``` xml
<manifest>
<uses-permission android:name="android.permission.INTERNET" />
<!-- Include next permission if you want to allow UIL to cache images on SD card -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
...
<application android:name="MyApplication">
...
</application>
</manifest>
```
### 3. Application class
``` java
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);
}
}
```
## Configuration and Display Options
* ImageLoader **Configuration (`ImageLoaderConfiguration`) is global** for application.
* **Display Options (`DisplayImageOptions`) are local** for every display task (`ImageLoader.displayImage(...)`).
### Configuration
All options in Configuration builder are optional. Use only those you really want to customize.<br />*See default values for config options in Java docs for every option.*
``` java
// DON'T COPY THIS CODE TO YOUR PROJECT! This is just example of ALL options using.
File cacheDir = StorageUtils.getCacheDirectory(context);
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context)
.memoryCacheExtraOptions(480, 800) // default = device screen dimensions
.discCacheExtraOptions(480, 800, CompressFormat.JPEG, 75)
.taskExecutor(...)
.taskExecutorForCachedImages(...)
.threadPoolSize(3) // default
.threadPriority(Thread.NORM_PRIORITY - 1) // default
.tasksProcessingOrder(QueueProcessingType.FIFO) // default
.denyCacheImageMultipleSizesInMemory()
.memoryCache(new LruMemoryCache(2 * 1024 * 1024))
.memoryCacheSize(2 * 1024 * 1024)
.discCache(new UnlimitedDiscCache(cacheDir)) // default
.discCacheSize(50 * 1024 * 1024)
.discCacheFileCount(100)
.discCacheFileNameGenerator(new HashCodeFileNameGenerator()) // default
.imageDownloader(new BaseImageDownloader(context)) // default
.imageDecoder(new BaseImageDecoder()) // default
.defaultDisplayImageOptions(DisplayImageOptions.createSimple()) // default
.enableLogging()
.build();
```
### Display Options
Display Options can be applied to every display task (`ImageLoader.displayImage(...)` call).
**Note:** If Display Options wasn't passed to `ImageLoader.displayImage(...)`method then default Display Options from configuration (`ImageLoaderConfiguration.defaultDisplayImageOptions(...)`) will be used.
``` java
// DON'T COPY THIS CODE TO YOUR PROJECT! This is just example of ALL options using.
DisplayImageOptions options = new DisplayImageOptions.Builder()
.showStubImage(R.drawable.ic_stub)
.showImageForEmptyUri(R.drawable.ic_empty)
.showImageOnFail(R.drawable.ic_error)
.resetViewBeforeLoading()
.delayBeforeLoading(1000)
.cacheInMemory()
.cacheOnDisc()
.preProcessor(...)
.postProcessor(...)
.extraForDownloader(...)
.imageScaleType(ImageScaleType.IN_SAMPLE_POWER_OF_2) // default
.bitmapConfig(Bitmap.Config.ARGB_8888) // default
.decodingOptions(...)
.displayer(new SimpleBitmapDisplayer()) // default
.handler(new Handler()) // default
.build();
```
## Usage
### Acceptable URIs examples
``` java
String imageUri = "http://site.com/image.png"; // from Web
String imageUri = "file:///mnt/sdcard/image.png"; // from SD card
String imageUri
没有合适的资源?快使用搜索试试~ 我知道了~
经典源码图片处理防止OOM Listview Viewpager
共129个文件
java:77个
xml:19个
png:18个
4星 · 超过85%的资源 需积分: 9 109 下载量 41 浏览量
2013-06-18
10:45:47
上传
评论 1
收藏 3.22MB ZIP 举报
温馨提示
对图片的处理,线程池、内存模式....详细看源码,你的开发会上升一个档次。
资源推荐
资源详情
资源评论
收起资源包目录
经典源码图片处理防止OOM Listview Viewpager (129个子文件)
universal-image-loader-sample-1.8.4.apk 810KB
.gitignore 223B
universal-image-loader-1.8.4-javadoc.jar 471KB
android-support-v4.jar 377KB
universal-image-loader-1.8.4-with-sources.jar 221KB
universal-image-loader-1.8.4-with-sources.jar 221KB
universal-image-loader-1.8.4.jar 120KB
universal-image-loader-1.8.4-sources.jar 105KB
LinkedBlockingDeque.java 36KB
BlockingDeque.java 25KB
Deque.java 22KB
ImageLoaderConfiguration.java 21KB
ImageLoader.java 20KB
LoadAndDisplayImageTask.java 14KB
DisplayImageOptions.java 12KB
BaseImageDownloader.java 9KB
Constants.java 8KB
BaseImageDecoder.java 8KB
ImageSizeUtils.java 8KB
DefaultConfigurationFactory.java 7KB
ImageLoaderEngine.java 6KB
RoundedBitmapDisplayer.java 6KB
ImagePagerActivity.java 5KB
ImageDecodingInfo.java 5KB
LimitedDiscCache.java 5KB
ImageListActivity.java 5KB
MemoryCacheUtil.java 4KB
ImageSizeTest.java 4KB
StorageUtils.java 4KB
UsingFreqLimitedMemoryCache.java 4KB
PauseOnScrollListener.java 4KB
LruMemoryCache.java 4KB
ImageScaleType.java 4KB
LimitedMemoryCache.java 3KB
LargestLimitedMemoryCache.java 3KB
UILWidgetProvider.java 3KB
LRULimitedMemoryCache.java 3KB
DisplayBitmapTask.java 3KB
ImageGridActivity.java 3KB
ImageGalleryActivity.java 3KB
HomeActivity.java 3KB
LimitedAgeDiscCache.java 3KB
ImageDownloader.java 3KB
AbsListViewBaseActivity.java 3KB
TotalSizeLimitedDiscCache.java 3KB
LimitedAgeMemoryCache.java 3KB
FileCountLimitedDiscCache.java 3KB
FIFOLimitedMemoryCache.java 2KB
UILApplication.java 2KB
ViewScaleType.java 2KB
FuzzyKeyMemoryCache.java 2KB
ProcessAndDisplayImageTask.java 2KB
ImageLoadingListener.java 2KB
BaseDiscCache.java 2KB
FailReason.java 2KB
L.java 2KB
BaseMemoryCache.java 2KB
ImageSize.java 2KB
FadeInBitmapDisplayer.java 2KB
ImageLoadingInfo.java 2KB
BaseImageDownloaderTest.java 2KB
HttpClientImageDownloader.java 2KB
UnlimitedDiscCache.java 2KB
DiscCacheUtil.java 2KB
BitmapDisplayer.java 2KB
SlowNetworkImageDownloader.java 2KB
Md5FileNameGenerator.java 2KB
BitmapProcessor.java 2KB
FakeBitmapDisplayer.java 2KB
SimpleImageLoadingListener.java 2KB
NetworkDeniedImageDownloader.java 2KB
DiscCacheAware.java 2KB
BaseActivity.java 2KB
IoUtils.java 2KB
LIFOLinkedBlockingDeque.java 1KB
MemoryCacheAware.java 1KB
WeakMemoryCache.java 1KB
SimpleBitmapDisplayer.java 1KB
ImageDecoder.java 1KB
HashCodeFileNameGenerator.java 1KB
FileNameGenerator.java 1KB
QueueProcessingType.java 1019B
FlushedInputStream.java 857B
R.java 307B
LoadedFrom.java 226B
Living Things @#&=+-_.,!()~'%20.jpg 150KB
LICENSE 11KB
README.md 28KB
CHANGELOG.md 10KB
Universal Image Loader @#&=+-_.,!()~'%20.png 390KB
UniversalImageLoader.png 372KB
ic_error.png 19KB
ic_error.png 13KB
ic_launcher.png 11KB
ic_launcher.png 7KB
ic_error.png 7KB
ic_empty.png 7KB
ic_stub.png 6KB
ic_stub.png 5KB
ic_empty.png 5KB
共 129 条
- 1
- 2
小小小小小明
- 粉丝: 0
- 资源: 8
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
前往页