# ![Logo](https://github.com/nostra13/Android-Universal-Image-Loader/raw/master/sample/res/drawable-mdpi/ic_launcher.png) Universal Image Loader
UIL aims to provide a powerful, flexible and highly customizable instrument for image loading, caching and displaying. It provides a lot of configuration options and good control over the image loading and caching process.
![Screenshot](https://github.com/nostra13/Android-Universal-Image-Loader/raw/master/UniversalImageLoader.png)
## Project News
**27.11 UIL celebrates 3 years of development :)**
* **#1** of Android libraries for loading and caching images on GitHub
* **#2** of Android libraries on GitHub (according [gitrep](https://www.gitrep.com/search?utf8=%E2%9C%93&omni_search=android+library&public_tags%5B%5D=Java&description=&search=true&sort=star_count&commit=Search))
* **#4** of Java repositories on GitHub (according [gitrep](https://www.gitrep.com/search?utf8=%E2%9C%93&omni_search=&public_tags%5B%5D=Java&description=&search=true&sort=star_count&commit=Search))
**Upcoming changes in new UIL version (1.9.4+)**
* Memory Cache redesign
* Video file thumbnail support via "file:///sdcard/video.mp4"
* **New API:** `DisplayImageOptions.targetSize(ImageSize)`
* HTTP cache support
* Consider `BitmapFactory.Options.inBitmap`
* Time-to-live option for files in LruDiskCache
## Features
* Multithread image loading (async or sync)
* Wide customization of ImageLoader's configuration (thread executors, downloader, decoder, memory and disk cache, display image options, etc.)
* Many customization options for every display image call (stub images, caching switch, decoding options, Bitmap processing and displaying, etc.)
* Image caching in memory and/or on disk (device's file system or SD card)
* Listening loading process (including downloading progress)
Android 2.0+ support
## Downloads
* **[universal-image-loader-1.9.3.jar](https://github.com/nostra13/Android-Universal-Image-Loader/raw/master/downloads/universal-image-loader-1.9.3.jar)**
* **[universal-image-loader-1.9.3-sources.jar](https://github.com/nostra13/Android-Universal-Image-Loader/raw/master/downloads/universal-image-loader-1.9.3-sources.jar)**
* **[universal-image-loader-1.9.3-javadoc.jar](https://github.com/nostra13/Android-Universal-Image-Loader/raw/master/downloads/universal-image-loader-1.9.3-javadoc.jar)**
* **[universal-image-loader-1.9.3-with-sources.jar](https://github.com/nostra13/Android-Universal-Image-Loader/raw/master/downloads/universal-image-loader-1.9.3-with-sources.jar)**
* [![Demo app](https://camo.githubusercontent.com/dc1ffe0e4d25c2c28a69423c3c78000ef7ee96bf/68747470733a2f2f646576656c6f7065722e616e64726f69642e636f6d2f696d616765732f6272616e642f656e5f6170705f7267625f776f5f34352e706e67)](https://play.google.com/store/apps/details?id=com.nostra13.universalimageloader.sample) [![QR Code](https://lh3.ggpht.com/csXEddxiLgQ6FxckefjQnP1PVugbaAYOdcuTa3vVtGV1PlWbFu2dYggoH8rI1w2RdEz1=w50)](http://chart.apis.google.com/chart?chs=300x300&cht=qr&chld=|1&chl=https%3A%2F%2Fplay.google.com%2Fstore%2Fapps%2Fdetails%3Fid%3Dcom.nostra13.universalimageloader.sample) [<img src="http://mobway.in/image/apk.png" height="45px" />](https://github.com/nostra13/Android-Universal-Image-Loader/raw/master/downloads/universal-image-loader-sample-1.9.3.apk)
### [Documentation](https://github.com/nostra13/Android-Universal-Image-Loader/wiki) | [Useful Info](https://github.com/nostra13/Android-Universal-Image-Loader/wiki/Useful-Info) | [User Support](https://github.com/nostra13/Android-Universal-Image-Loader/wiki/User-Support) | [Changelog](https://github.com/nostra13/Android-Universal-Image-Loader/blob/master/CHANGELOG.md)
## Quick Setup
#### 1. Include library
**Manual:**
* [Download JAR](https://github.com/nostra13/Android-Universal-Image-Loader/raw/master/downloads/universal-image-loader-1.9.3.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.9.3</version>
</dependency>
```
or
**Gradle dependency:**
``` groovy
compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.3'
```
#### 2. Android Manifest
``` xml
<manifest>
<!-- Include following permission if you load images from Internet -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- Include following permission if you want to cache images on SD card -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
...
</manifest>
```
#### 3. Application or Activity class (before the first usage of ImageLoader)
``` java
public class MyActivity extends Activity {
@Override
public void onCreate() {
super.onCreate();
// Create global configuration and initialize ImageLoader with this config
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(this)
...
.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.
// See the sample project how to use ImageLoader correctly.
File cacheDir = StorageUtils.getCacheDirectory(context);
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context)
.memoryCacheExtraOptions(480, 800) // default = device screen dimensions
.diskCacheExtraOptions(480, 800, null)
.taskExecutor(...)
.taskExecutorForCachedImages(...)
.threadPoolSize(3) // default
.threadPriority(Thread.NORM_PRIORITY - 2) // default
.tasksProcessingOrder(QueueProcessingType.FIFO) // default
.denyCacheImageMultipleSizesInMemory()
.memoryCache(new LruMemoryCache(2 * 1024 * 1024))
.memoryCacheSize(2 * 1024 * 1024)
.memoryCacheSizePercentage(13) // default
.diskCache(new UnlimitedDiscCache(cacheDir)) // default
.diskCacheSize(50 * 1024 * 1024)
.diskCacheFileCount(100)
.diskCacheFileNameGenerator(new HashCodeFileNameGenerator()) // default
.imageDownloader(new BaseImageDownloader(context)) // default
.imageDecoder(new BaseImageDecoder()) // default
.defaultDisplayImageOptions(DisplayImageOptions.createSimple()) // default
.writeDebugLogs()
.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.
// See the sample project how to use ImageLoader correctly.
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(false) // default
.cacheOnDisk(false) // default
.preProcessor(...)
.postProcessor(...)
.extraForDownloader(...)
.considerExifParams(false) // default
.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
"http://site.com/image.png" // from
没有合适的资源?快使用搜索试试~ 我知道了~
Android-Universal-Image-Loader源码和jar包
共141个文件
java:83个
png:21个
xml:21个
5星 · 超过95%的资源 需积分: 10 836 下载量 44 浏览量
2014-12-08
20:48:13
上传
评论 3
收藏 3.73MB ZIP 举报
温馨提示
Android-Universal-Image-Loader是一个开源的UI组件程序,该项目的目的是提供一个可重复使用的仪器为异步图像加载,缓存和显示。 Android开发中我们会经常遇到图片过多或操作不当造成OOM异常,有时虽然是解决了这个问题但却会影响程序的运行效率,例如:当用户在快速滑动滚动条的过程中,我们程序在仍在艰难的加载服务器端的图片,这样给用户造成了极不好的体验。其实网络上关于图片的异步加载和缓存的讲解很多,但是其实,写一个这方面的程序还是比较麻烦的,要考虑多线程,缓存,内存溢出等很多方面,针对这一光大开发者都会遇到的问题,一些牛人们已经帮我们解决了这一问题,今天我为大家介绍一款很流行的开源类库,可以很很好的解决大家的烦恼! 特点: 1.多线程的图像加载; 2.图片异步加载缓存机制,包括内存缓存(软引用)及本地缓存; 3.动态对ImageLoader的配置(线程池的大小,HTTP选项,内存和光盘高速缓存方式,显示图像,以及其他选项); 4.对加载过程实现监听和事件处理; 5.能够配置加载图片的显示选项,包括图片圆角处理和加载完成显示动画等;
资源推荐
资源详情
资源评论
收起资源包目录
Android-Universal-Image-Loader源码和jar包 (141个子文件)
universal-image-loader-sample-1.9.3.apk 832KB
.gitignore 263B
build.gradle 516B
universal-image-loader-1.9.3-javadoc.jar 550KB
android-support-v4.jar 377KB
universal-image-loader-1.9.3-with-sources.jar 285KB
universal-image-loader-1.9.3.jar 157KB
universal-image-loader-1.9.3.jar 157KB
universal-image-loader-1.9.3-sources.jar 132KB
ImageLoader.java 37KB
LinkedBlockingDeque.java 36KB
DiskLruCache.java 29KB
BlockingDeque.java 25KB
ImageLoaderConfiguration.java 25KB
Deque.java 22KB
DisplayImageOptions.java 17KB
LoadAndDisplayImageTask.java 17KB
Constants.java 16KB
BaseImageDownloader.java 12KB
BaseImageDecoder.java 9KB
ImageSizeUtils.java 8KB
ImageSizeTest.java 8KB
DefaultConfigurationFactory.java 8KB
LruDiskCache.java 7KB
ImageLoaderEngine.java 7KB
StrictLineReader.java 7KB
ViewAware.java 6KB
BaseDiskCache.java 6KB
StorageUtils.java 6KB
ImageAware.java 5KB
ImageDecodingInfo.java 5KB
ImagePagerFragment.java 5KB
ImageListFragment.java 5KB
ImageViewAware.java 5KB
ImageGridFragment.java 5KB
LimitedAgeDiskCache.java 4KB
IoUtils.java 4KB
MemoryCacheUtils.java 4KB
HomeActivity.java 4KB
ImageScaleType.java 4KB
RoundedBitmapDisplayer.java 4KB
UsingFreqLimitedMemoryCache.java 4KB
PauseOnScrollListener.java 4KB
LruMemoryCache.java 4KB
ImageGalleryFragment.java 4KB
LimitedMemoryCache.java 3KB
DisplayBitmapTask.java 3KB
LargestLimitedMemoryCache.java 3KB
L.java 3KB
FadeInBitmapDisplayer.java 3KB
LRULimitedMemoryCache.java 3KB
UILWidgetProvider.java 3KB
AbsListViewBaseFragment.java 3KB
ImageDownloader.java 3KB
SimpleImageActivity.java 3KB
RoundedVignetteBitmapDisplayer.java 3KB
DiskCache.java 3KB
NonViewAware.java 3KB
ComplexImageActivity.java 3KB
LimitedAgeMemoryCache.java 3KB
UILApplication.java 3KB
FIFOLimitedMemoryCache.java 2KB
ImageLoadingListener.java 2KB
ViewScaleType.java 2KB
FuzzyKeyMemoryCache.java 2KB
ProcessAndDisplayImageTask.java 2KB
ImageLoadingInfo.java 2KB
BaseMemoryCache.java 2KB
FailReason.java 2KB
ContentLengthInputStream.java 2KB
UnlimitedDiskCache.java 2KB
Util.java 2KB
ImageSize.java 2KB
BitmapDisplayer.java 2KB
BaseImageDownloaderTest.java 2KB
DiskCacheUtils.java 2KB
BaseFragment.java 2KB
SimpleImageLoadingListener.java 2KB
Md5FileNameGenerator.java 2KB
BitmapProcessor.java 2KB
LIFOLinkedBlockingDeque.java 1KB
MemoryCache.java 1KB
WeakMemoryCache.java 1KB
SimpleBitmapDisplayer.java 1KB
ImageLoadingProgressListener.java 1KB
ImageDecoder.java 1KB
HashCodeFileNameGenerator.java 1KB
FileNameGenerator.java 1KB
QueueProcessingType.java 1018B
FlushedInputStream.java 857B
R.java 307B
LoadedFrom.java 225B
Living Things @#&=+-_.,!()~'%20.jpg 150KB
LICENSE 11KB
README.md 17KB
CHANGELOG.md 16KB
Universal Image Loader @#&=+-_.,!()~'%20.png 390KB
UniversalImageLoader.png 372KB
UIL_Flow.png 231KB
ic_launcher.png 58KB
共 141 条
- 1
- 2
码仔2020
- 粉丝: 6
- 资源: 12
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
- 4
- 5
- 6
前往页