{"id":3533,"url":"https://github.com/nostra13/Android-Universal-Image-Loader","last_synced_at":"2025-08-03T20:32:42.139Z","repository":{"id":1933486,"uuid":"2862290","full_name":"nostra13/Android-Universal-Image-Loader","owner":"nostra13","description":"Powerful and flexible library for loading, caching and displaying images on Android.","archived":false,"fork":false,"pushed_at":"2024-08-15T11:03:23.000Z","size":27133,"stargazers_count":16784,"open_issues_count":457,"forks_count":6099,"subscribers_count":1323,"default_branch":"master","last_synced_at":"2024-10-14T12:02:42.419Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nostra13.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2011-11-27T18:48:23.000Z","updated_at":"2024-10-06T23:34:07.000Z","dependencies_parsed_at":"2024-09-29T20:40:32.630Z","dependency_job_id":"26136299-0fa8-465b-89b2-b9587f2147cb","html_url":"https://github.com/nostra13/Android-Universal-Image-Loader","commit_stats":{"total_commits":947,"total_committers":42,"mean_commits":"22.547619047619047","dds":0.07814149947201687,"last_synced_commit":"458df4da2e23ba9ad76c79241a948cdfcccf72ae"},"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nostra13%2FAndroid-Universal-Image-Loader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nostra13%2FAndroid-Universal-Image-Loader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nostra13%2FAndroid-Universal-Image-Loader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nostra13%2FAndroid-Universal-Image-Loader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nostra13","download_url":"https://codeload.github.com/nostra13/Android-Universal-Image-Loader/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228567009,"owners_count":17937983,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-01-05T20:16:44.205Z","updated_at":"2024-12-07T05:30:38.950Z","avatar_url":"https://github.com/nostra13.png","language":"Java","readme":"# ![Logo](https://github.com/nostra13/Android-Universal-Image-Loader/raw/master/sample/src/main/res/drawable-mdpi/ic_launcher.png) Universal Image Loader [![Build Status](https://travis-ci.org/nostra13/Android-Universal-Image-Loader.svg?branch=master)](https://travis-ci.org/nostra13/Android-Universal-Image-Loader) [![Maven Central](https://maven-badges.herokuapp.com/maven-central/com.nostra13.universalimageloader/universal-image-loader/badge.svg)](https://maven-badges.herokuapp.com/maven-central/com.nostra13.universalimageloader/universal-image-loader)\n\nThe great ancestor of modern image-loading libraries :)  \nUIL 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.\n\n![Screenshot](https://github.com/nostra13/Android-Universal-Image-Loader/raw/master/UniversalImageLoader.png)\n\n## Project News \n * Really have no time for development... so I stop project maintaining since Nov 27 :(\n * UIL [27.11.2011 - 27.11.2015]\n * Thanks to all developers for your support :)\n\n## Features\n * Multi-thread image loading (async or sync)\n * Wide customization of ImageLoader's configuration (thread executors, downloader, decoder, memory and disk cache, display image options, etc.)\n * Many customization options for every display image call (stub images, caching switch, decoding options, Bitmap processing and displaying, etc.)\n * Image caching in memory and/or on disk (device's file system or SD card)\n * Listening loading process (including downloading progress)\n\nAndroid 4.1+ support\n\n## Downloads\n * **[universal-image-loader-1.9.5.jar](https://github.com/nostra13/Android-Universal-Image-Loader/raw/master/downloads/universal-image-loader-1.9.5.jar)**\n * [\u003cimg src=\"https://play.google.com/intl/en_us/badges/images/apps/en-play-badge.png\" height=\"45px\" /\u003e](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\u0026cht=qr\u0026chld=|1\u0026chl=https%3A%2F%2Fplay.google.com%2Fstore%2Fapps%2Fdetails%3Fid%3Dcom.nostra13.universalimageloader.sample) [\u003cimg src=\"https://www.javatpoint.com/fullformpages/images/apk.png\" height=\"45px\" /\u003e](https://github.com/nostra13/Android-Universal-Image-Loader/raw/master/downloads/universal-image-loader-sample-1.9.5.apk)\n\n## [Documentation](https://github.com/nostra13/Android-Universal-Image-Loader/wiki)\n * **[Quick Setup](https://github.com/nostra13/Android-Universal-Image-Loader/wiki/Quick-Setup)**\n * **[Configuration](https://github.com/nostra13/Android-Universal-Image-Loader/wiki/Configuration)**\n * **[Display Options](https://github.com/nostra13/Android-Universal-Image-Loader/wiki/Display-Options)**\n * [Useful Info](https://github.com/nostra13/Android-Universal-Image-Loader/wiki/Useful-Info) - Read it before asking a question\n * [User Support](https://github.com/nostra13/Android-Universal-Image-Loader/wiki/User-Support) - Read it before creating new issue\n * [Sample project](https://github.com/nostra13/Android-Universal-Image-Loader/tree/master/sample) - Learn it to understand the right way of library usage\n * [ChangeLog](https://github.com/nostra13/Android-Universal-Image-Loader/blob/master/CHANGELOG.md) - Info about API changes is here\n\n## Usage\n\n### Dependency\n\n```\nimplementation 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'\n```\n\n### Acceptable URIs examples\n``` java\n\"http://site.com/image.png\" // from Web\n\"file:///mnt/sdcard/image.png\" // from SD card\n\"file:///mnt/sdcard/video.mp4\" // from SD card (video thumbnail)\n\"content://media/external/images/media/13\" // from content provider\n\"content://media/external/video/media/13\" // from content provider (video thumbnail)\n\"assets://image.png\" // from assets\n\"drawable://\" + R.drawable.img // from drawables (non-9patch images)\n```\n**NOTE:** Use `drawable://` only if you really need it! Always **consider the native way** to load drawables - `ImageView.setImageResource(...)` instead of using of `ImageLoader`.\n\n### Simple\n``` java\nImageLoader imageLoader = ImageLoader.getInstance(); // Get singleton instance\n```\n``` java\n// Load image, decode it to Bitmap and display Bitmap in ImageView (or any other view \n//\twhich implements ImageAware interface)\nimageLoader.displayImage(imageUri, imageView);\n```\n``` java\n// Load image, decode it to Bitmap and return Bitmap to callback\nimageLoader.loadImage(imageUri, new SimpleImageLoadingListener() {\n\t@Override\n\tpublic void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {\n\t\t// Do whatever you want with Bitmap\n\t}\n});\n```\n``` java\n// Load image, decode it to Bitmap and return Bitmap synchronously\nBitmap bmp = imageLoader.loadImageSync(imageUri);\n```\n\n### Complete\n``` java\n// Load image, decode it to Bitmap and display Bitmap in ImageView (or any other view \n//\twhich implements ImageAware interface)\nimageLoader.displayImage(imageUri, imageView, options, new ImageLoadingListener() {\n\t@Override\n\tpublic void onLoadingStarted(String imageUri, View view) {\n\t\t...\n\t}\n\t@Override\n\tpublic void onLoadingFailed(String imageUri, View view, FailReason failReason) {\n\t\t...\n\t}\n\t@Override\n\tpublic void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {\n\t\t...\n\t}\n\t@Override\n\tpublic void onLoadingCancelled(String imageUri, View view) {\n\t\t...\n\t}\n}, new ImageLoadingProgressListener() {\n\t@Override\n\tpublic void onProgressUpdate(String imageUri, View view, int current, int total) {\n\t\t...\n\t}\n});\n```\n``` java\n// Load image, decode it to Bitmap and return Bitmap to callback\nImageSize targetSize = new ImageSize(80, 50); // result Bitmap will be fit to this size\nimageLoader.loadImage(imageUri, targetSize, options, new SimpleImageLoadingListener() {\n\t@Override\n\tpublic void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {\n\t\t// Do whatever you want with Bitmap\n\t}\n});\n```\n``` java\n// Load image, decode it to Bitmap and return Bitmap synchronously\nImageSize targetSize = new ImageSize(80, 50); // result Bitmap will be fit to this size\nBitmap bmp = imageLoader.loadImageSync(imageUri, targetSize, options);\n```\n\n## Load \u0026 Display Task Flow\n![Task Flow](https://github.com/nostra13/Android-Universal-Image-Loader/raw/master/wiki/UIL_Flow.png)\n\n\n## Applications using Universal Image Loader\n**[MediaHouse, UPnP/DLNA Browser](https://play.google.com/store/apps/details?id=com.dbapp.android.mediahouse)** | **[Prezzi Benzina (AndroidFuel)](https://play.google.com/store/apps/details?id=org.vernazza.androidfuel)** | **[ROM Toolbox Lite](https://play.google.com/store/apps/details?id=com.jrummy.liberty.toolbox)**, [Pro](https://play.google.com/store/apps/details?id=com.jrummy.liberty.toolboxpro) | [Stadium Astro](https://play.google.com/store/apps/details?id=com.astro.stadium.activities) | [Chef Astro](https://play.google.com/store/apps/details?id=com.sencha.test) | [Sporee - Live Soccer Scores](https://play.google.com/store/apps/details?id=com.sporee.android) | **[EyeEm - Photo Filter Camera](https://play.google.com/store/apps/details?id=com.baseapp.eyeem)** | **[Topface - meeting is easy](https://play.google.com/store/apps/details?id=com.topface.topface)** | **[reddit is fun](https://play.google.com/store/apps/details?id=com.andrewshu.android.reddit)** | **[Diaro - personal diary](https://play.google.com/store/apps/details?id=com.pixelcrater.Diaro)** | **[Meetup](https://play.google.com/store/apps/details?id=com.meetup)** | [Vingle - Magazines by Fans](https://play.google.com/store/apps/details?id=com.vingle.android) | [Anime Music Radio](https://play.google.com/store/apps/details?id=com.maxxt.animeradio) | [WidgetLocker Theme Viewer](https://play.google.com/store/apps/details?id=com.companionfree.WLThemeViewer) | [ShortBlogger for Tumblr](https://play.google.com/store/apps/details?id=com.luckydroid.tumblelog) | [SnapDish Food Camera](https://play.google.com/store/apps/details?id=com.vuzz.snapdish) | **[Twitch](https://play.google.com/store/apps/details?id=tv.twitch.android.viewer)** | [TVShow Time, TV show guide](https://play.google.com/store/apps/details?id=com.tozelabs.tvshowtime) | [Planning Center Services](https://play.google.com/store/apps/details?id=com.ministrycentered.PlanningCenter) | **[Lapse It](https://play.google.com/store/apps/details?id=com.ui.LapseIt)** | [My Cloud Player for SoundCloud](https://play.google.com/store/apps/details?id=com.mycloudplayers.mycloudplayer) | **[SoundTracking](https://play.google.com/store/apps/details?id=com.schematiclabs.soundtracking)** | [LoopLR Social Video](https://play.google.com/store/apps/details?id=com.looplr) | [Hír24](https://play.google.com/store/apps/details?id=hu.sanomamedia.hir24) | **[Immobilien Scout24](https://play.google.com/store/apps/details?id=de.is24.android)** | **[Lieferheld - Pizza Pasta Sushi](https://play.google.com/store/apps/details?id=de.lieferheld.android)** | [Loocator: free sex datings](https://play.google.com/store/apps/details?id=com.ivicode.loocator) | [벨팡-개편 이벤트,컬러링,벨소리,무료,최신가요,링투유](https://play.google.com/store/apps/details?id=com.mediahubs.www) | [Streambels AirPlay/DLNA Player](https://play.google.com/store/apps/details?id=com.tuxera.streambels) | [Ship Mate - All Cruise Lines](https://play.google.com/store/apps/details?id=shipmate.carnival) | [Disk \u0026 Storage Analyzer](https://play.google.com/store/apps/details?id=com.mobile_infographics_tools.mydrive) | [糗事百科](https://play.google.com/store/apps/details?id=qsbk.app) | [Balance BY](https://play.google.com/store/apps/details?id=com.vladyud.balance) | **[Anti Theft Alarm - Security](https://play.google.com/store/apps/details?id=br.com.verde.alarme)** | **[XiiaLive™ - Internet Radio](https://play.google.com/store/apps/details?id=com.android.DroidLiveLite)** | **[Bandsintown Concerts](https://play.google.com/store/apps/details?id=com.bandsintown)** | **[Save As Web Archive](https://play.google.com/store/apps/details?id=jp.fuukiemonster.webmemo)** | [MCPE STORE -Download MCPE file](https://play.google.com/store/apps/details?id=com.newidea.mcpestore) | **[All-In-One Toolbox (29 Tools)](http://aiotoolbox.com/)** | [Zaim](https://play.google.com/store/apps/details?id=net.zaim.android) | **[Calculator Plus Free](https://play.google.com/store/apps/details?id=com.digitalchemy.calculator.freedecimal)** | [Truedialer by Truecaller](https://play.google.com/store/apps/details?id=com.truecaller.phoneapp) | [DoggCatcher Podcast Player](https://play.google.com/store/apps/details?id=com.snoggdoggler.android.applications.doggcatcher.v1_0) | [PingTools Network Utilities](https://play.google.com/store/apps/details?id=ua.com.streamsoft.pingtools) | [The Traveler](https://play.google.com/store/apps/details?id=edu.bsu.android.apps.traveler) | [minube: travel photo album](https://play.google.com/store/apps/details?id=com.minube.app) | [Wear Store for Wear Apps](https://play.google.com/store/apps/details?id=goko.ws2) | [Cast Store for Chromecast Apps](https://play.google.com/store/apps/details?id=goko.gcs) | [WebMoney Keeper](https://play.google.com/store/apps/details?id=com.webmoney.my)\n\n## Donation\nYou can support the project and thank the author for his hard work :)\n\n* **PayPal** - nostra.uil[at]gmail[dot]com\n\n## Alternative libraries\n\n * [Fresco](https://github.com/facebook/fresco)\n * [Glide](https://github.com/bumptech/glide)\n * [Picasso](https://github.com/square/picasso)\n * [Volley : ImageLoader](https://android.googlesource.com/platform/frameworks/volley/)\n","funding_links":[],"categories":["Image Loader","Image loaders","Libraries","Java","图片","Index","Libs","etc","Android 开发中的日常积累","CN","Uncategorized","库"],"sub_categories":["GUI","Loading Images","Image Loader","\u003cA NAME=\"Image_Loading\"\u003e\u003c/A\u003eImage Loading","安卓网络层(包含图片)","[Sergey Tarasevich](https://github.com/nostra13)","Uncategorized","[](https://github.com/JStumpp/awesome-android/blob/master/readme.md#loading-images)图片加载"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnostra13%2FAndroid-Universal-Image-Loader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnostra13%2FAndroid-Universal-Image-Loader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnostra13%2FAndroid-Universal-Image-Loader/lists"}