Powerful and flexible library for loading, caching and displaying images on Android.

Overview

Logo Universal Image Loader Build Status Maven Central

The great ancestor of modern image-loading libraries :)
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

Project News

  • Really have no time for development... so I stop project maintaining since Nov 27 :(
  • UIL [27.11.2011 - 27.11.2015]
  • Thanks to all developers for your support :)

Features

  • Multi-thread 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 4.1+ support

Downloads

Documentation

Usage

Dependency

implementation 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'

Acceptable URIs examples

"http://site.com/image.png" // from Web
"file:///mnt/sdcard/image.png" // from SD card
"file:///mnt/sdcard/video.mp4" // from SD card (video thumbnail)
"content://media/external/images/media/13" // from content provider
"content://media/external/video/media/13" // from content provider (video thumbnail)
"assets://image.png" // from assets
"drawable://" + R.drawable.img // from drawables (non-9patch images)

NOTE: Use drawable:// only if you really need it! Always consider the native way to load drawables - ImageView.setImageResource(...) instead of using of ImageLoader.

Simple

ImageLoader imageLoader = ImageLoader.getInstance(); // Get singleton instance
// Load image, decode it to Bitmap and display Bitmap in ImageView (or any other view 
//	which implements ImageAware interface)
imageLoader.displayImage(imageUri, imageView);
// Load image, decode it to Bitmap and return Bitmap to callback
imageLoader.loadImage(imageUri, new SimpleImageLoadingListener() {
	@Override
	public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
		// Do whatever you want with Bitmap
	}
});
// Load image, decode it to Bitmap and return Bitmap synchronously
Bitmap bmp = imageLoader.loadImageSync(imageUri);

Complete

// Load image, decode it to Bitmap and display Bitmap in ImageView (or any other view 
//	which implements ImageAware interface)
imageLoader.displayImage(imageUri, imageView, options, new ImageLoadingListener() {
	@Override
	public void onLoadingStarted(String imageUri, View view) {
		...
	}
	@Override
	public void onLoadingFailed(String imageUri, View view, FailReason failReason) {
		...
	}
	@Override
	public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
		...
	}
	@Override
	public void onLoadingCancelled(String imageUri, View view) {
		...
	}
}, new ImageLoadingProgressListener() {
	@Override
	public void onProgressUpdate(String imageUri, View view, int current, int total) {
		...
	}
});
// Load image, decode it to Bitmap and return Bitmap to callback
ImageSize targetSize = new ImageSize(80, 50); // result Bitmap will be fit to this size
imageLoader.loadImage(imageUri, targetSize, options, new SimpleImageLoadingListener() {
	@Override
	public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
		// Do whatever you want with Bitmap
	}
});
// Load image, decode it to Bitmap and return Bitmap synchronously
ImageSize targetSize = new ImageSize(80, 50); // result Bitmap will be fit to this size
Bitmap bmp = imageLoader.loadImageSync(imageUri, targetSize, options);

Load & Display Task Flow

Task Flow

Applications using Universal Image Loader

MediaHouse, UPnP/DLNA Browser | Prezzi Benzina (AndroidFuel) | ROM Toolbox Lite, Pro | Stadium Astro | Chef Astro | Sporee - Live Soccer Scores | EyeEm - Photo Filter Camera | Topface - meeting is easy | reddit is fun | Diaro - personal diary | Meetup | Vingle - Magazines by Fans | Anime Music Radio | WidgetLocker Theme Viewer | ShortBlogger for Tumblr | SnapDish Food Camera | Twitch | TVShow Time, TV show guide | Planning Center Services | Lapse It | My Cloud Player for SoundCloud | SoundTracking | LoopLR Social Video | Hír24 | Immobilien Scout24 | Lieferheld - Pizza Pasta Sushi | Loocator: free sex datings | 벨팡-개편 이벤트,컬러링,벨소리,무료,최신가요,링투유 | Streambels AirPlay/DLNA Player | Ship Mate - All Cruise Lines | Disk & Storage Analyzer | 糗事百科 | Balance BY | Anti Theft Alarm - Security | XiiaLive™ - Internet Radio | Bandsintown Concerts | Save As Web Archive | MCPE STORE -Download MCPE file | All-In-One Toolbox (29 Tools) | Zaim | Calculator Plus Free | Truedialer by Truecaller | DoggCatcher Podcast Player | PingTools Network Utilities | The Traveler | minube: travel photo album | Wear Store for Wear Apps | Cast Store for Chromecast Apps | WebMoney Keeper

Donation

You can support the project and thank the author for his hard work :)

  • PayPal - nostra.uil[at]gmail[dot]com

Alternative libraries

License

Copyright 2011-2015 Sergey Tarasevich

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Comments
  • Can't load image from Content Provider

    Can't load image from Content Provider

    Hello,

    I'm having a weird problem. I have two apks, one is a Content Provider and the other consumes the data. The following code in the consumer does not work:

    imageLoader.displayImage("content://com.risesoftware.coloroos_animals/assets/aa.png", imgvw_page);
    

    The error is :

    E/ImageLoader﹕ Image can't be decoded [content://com.risesoftware.coloroos_animals/assets/aa.png_1000x1000]
    

    but the following code DOES work :

    Uri theUri = Uri.parse("content://com.risesoftware.coloroos_animals/assets/aa.png");
    InputStream inputStream = null;
    inputStream = m_context.getContentResolver().openInputStream(theUri);
    Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
    imgvw_page.setImageBitmap(bitmap);
    

    I looked through BaseImageDownloader and the code is virtually identical.

    Problem 
    opened by MikeWallaceDev 36
  • [1.8.0] memoryCacheExtraOptions affixes the values to the Uri (https)

    [1.8.0] memoryCacheExtraOptions affixes the values to the Uri (https)

    I'm using .memoryCacheExtraOptions(512, 512) I'm not sure if this is the desired effect but by doing this when performing webrequests it now affixes the size to the end of the image.

    https://d3jpl91pxevbkh.cloudfront.net/notha/image/upload/v1360769665/1.png becomes https://d3jpl91pxevbkh.cloudfront.net/notha/image/upload/v1360769665/1.png_512x512 Which of course fails loading.

    Cheers, Chris

    Problem 
    opened by chrisjenx 25
  • images display wrong

    images display wrong

    I am loading 5 images..when 1st images get loaded it will be displayed in 1st imageview and randomly in ant one of others imageviews. after loading all images it gradually loads other images and get placed.

        public class PhotoGridAdapter extends BaseAdapter {
    
        private Context mContext;
        private LayoutInflater infalter;
        private ArrayList<WallPhoto> data = new ArrayList<WallPhoto>();
        ImageLoader imageLoader;
    
        public PhotoGridAdapter(Context c) {
            infalter = (LayoutInflater) c.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            mContext = c;
    
            DisplayImageOptions defaultOptions = new DisplayImageOptions.Builder()
                    .cacheInMemory()
                    .cacheOnDisc()
                    .build();
            ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(mContext)
                    .memoryCache(new WeakMemoryCache())
                    .defaultDisplayImageOptions(defaultOptions)
                    .build();
            imageLoader = ImageLoader.getInstance();
            imageLoader.init(config);
        }
    
        @Override
        public int getCount() {
            return data.size();
        }
    
        @Override
        public WallPhoto getItem(int position) {
    
            return data.get(position);
        }
    
        @Override
        public long getItemId(int position) {
            return position;
        }
    
        public void addAll(ArrayList<WallPhoto> files) {
    
            try {
                this.data.clear();
                this.data.addAll(files);
    
            } catch (Exception e) {
                e.printStackTrace();
            }
    
            notifyDataSetChanged();
        }
    
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
    
            ViewHolder holder;
            if (convertView == null) {
                convertView = infalter.inflate(R.layout.photo_item, null);
                holder = new ViewHolder();
    
                holder.imgPhoto = (ImageView) convertView.findViewById(R.id.imgMenuIcon);
    
                convertView.setTag(holder);
    
            } else {
                holder = (ViewHolder) convertView.getTag();
            }
    
            try {
                imageLoader.displayImage(data.get(position).url, holder.imgPhoto);
            } catch (Exception e) {
                e.printStackTrace();
            }
    
            return convertView;
        }
    
        public class ViewHolder {
            ImageView imgPhoto;
        }
        }
    
    Problem 
    opened by bhavesh-hirpara 25
  • OutOfMemoryError when I download Images from internet

    OutOfMemoryError when I download Images from internet

    I have listView in which I display images , this is a snippet from Adapters' getView method

                ImageView imageView = (ImageView) v.findViewById(R.id.ivSmallImage);
        File cacheDir = StorageUtils.getOwnCacheDirectory(mContext, "alrawda/Cache");
        ImageLoader imageLoader = ImageLoader.getInstance();
    
        ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(mContext)
            .threadPoolSize(3)
            .threadPriority(Thread.NORM_PRIORITY - 2)
            .memoryCache(new UsingFreqLimitedMemoryCache(2000000))
            .memoryCacheSize(1500000) // 1.5 Mb
    
            .denyCacheImageMultipleSizesInMemory()
            .discCache(new UnlimitedDiscCache(cacheDir))
            .discCacheFileNameGenerator(new Md5FileNameGenerator())
            .enableLogging() // Not necessary in common
    
    
            .build();
        imageLoader.init(config);
    
        options = new DisplayImageOptions.Builder()
    
        .showStubImage(R.drawable.stub_image)
        .cacheInMemory()
        .cacheOnDisc()
        .build();
        final ProgressBar spinner = new ProgressBar(mContext);
        imageLoader.displayImage(o.getSmallImage(), imageView,options,new ImageLoadingListener() {
    
            @Override
            public void onLoadingStarted() {
                spinner.setVisibility(View.VISIBLE);
    
            }
    
            @Override
            public void onLoadingFailed(FailReason failReason) {
                spinner.setVisibility(View.INVISIBLE);
    
            }
    
            @Override
            public void onLoadingComplete() {
                spinner.setVisibility(View.INVISIBLE);
    
            }
    
            @Override
            public void onLoadingCancelled() {
    
            }
        });
    

    After some images displayed , the Logcat shows me an error :

    07-12 18:01:05.885: E/dalvikvm-heap(5680): Out of memory on a 1120016-byte allocation. 07-12 18:01:05.895: I/dalvikvm(5680): "Thread-9724" prio=3 tid=14 RUNNABLE 07-12 18:01:05.950: I/dalvikvm(5680): | group="main" sCount=0 dsCount=0 obj=0x419b7e98 self=0xc2c698 07-12 18:01:05.950: I/dalvikvm(5680): | sysTid=5709 nice=13 sched=0/0 cgrp=bg_non_interactive handle=12568832 07-12 18:01:05.950: I/dalvikvm(5680): | schedstat=( 4136736133 1474479795 2225 ) utm=383 stm=30 core=0 07-12 18:01:05.970: I/dalvikvm(5680): at android.graphics.BitmapFactory.nativeDecodeStream(Native Method) 07-12 18:01:05.970: I/dalvikvm(5680): at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:587) 07-12 18:01:05.975: I/dalvikvm(5680): at com.nostra13.universalimageloader.core.ImageDecoder.decode(ImageDecoder.java:61) 07-12 18:01:05.990: I/dalvikvm(5680): at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.decodeWithOOMHandling(LoadAndDisplayImageTask.java:163) 07-12 18:01:05.995: I/dalvikvm(5680): at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.decodeImage(LoadAndDisplayImageTask.java:150) 07-12 18:01:06.000: I/dalvikvm(5680): at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.tryLoadBitmap(LoadAndDisplayImageTask.java:104) 07-12 18:01:06.005: I/dalvikvm(5680): at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.run(LoadAndDisplayImageTask.java:58) 07-12 18:01:06.010: I/dalvikvm(5680): at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:442) 07-12 18:01:06.030: I/dalvikvm(5680): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305) 07-12 18:01:06.030: I/dalvikvm(5680): at java.util.concurrent.FutureTask.run(FutureTask.java:137) 07-12 18:01:06.035: I/dalvikvm(5680): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) 07-12 18:01:06.040: I/dalvikvm(5680): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569) 07-12 18:01:06.045: I/dalvikvm(5680): at java.lang.Thread.run(Thread.java:856) 07-12 18:01:06.055: D/skia(5680): --- decoder->decode returned false 07-12 18:01:06.095: E/ImageLoader(5680): null 07-12 18:01:06.095: E/ImageLoader(5680): java.lang.OutOfMemoryError 07-12 18:01:06.095: E/ImageLoader(5680): at android.graphics.BitmapFactory.nativeDecodeStream(Native Method) 07-12 18:01:06.095: E/ImageLoader(5680): at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:587) 07-12 18:01:06.095: E/ImageLoader(5680): at com.nostra13.universalimageloader.core.ImageDecoder.decode(ImageDecoder.java:61) 07-12 18:01:06.095: E/ImageLoader(5680): at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.decodeWithOOMHandling(LoadAndDisplayImageTask.java:163) 07-12 18:01:06.095: E/ImageLoader(5680): at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.decodeImage(LoadAndDisplayImageTask.java:150) 07-12 18:01:06.095: E/ImageLoader(5680): at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.tryLoadBitmap(LoadAndDisplayImageTask.java:104) 07-12 18:01:06.095: E/ImageLoader(5680): at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.run(LoadAndDisplayImageTask.java:58) 07-12 18:01:06.095: E/ImageLoader(5680): at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:442) 07-12 18:01:06.095: E/ImageLoader(5680): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305) 07-12 18:01:06.095: E/ImageLoader(5680): at java.util.concurrent.FutureTask.run(FutureTask.java:137) 07-12 18:01:06.095: E/ImageLoader(5680): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) 07-12 18:01:06.095: E/ImageLoader(5680): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569) 07-12 18:01:06.095: E/ImageLoader(5680): at java.lang.Thread.run(Thread.java:856) 07-12 18:01:06.180: D/dalvikvm(5680): GC_EXPLICIT freed 54K, 7% free 61470K/65479K, paused 3ms+16ms

    How can I get out from this error ,

    Bug 
    opened by muhannad-alhariri 23
  • Bug when loadImage into RemoteViewsFactory

    Bug when loadImage into RemoteViewsFactory

    bug http://prntscr.com/vez6f

        File cacheDir = new File(WidgetProvider.IMG_PATH);
                DisplayImageOptions optionsWithFakeDisplayer = new DisplayImageOptions.Builder()
                        .displayer(new FadeInBitmapDisplayer(2000)).cacheOnDisc()
                        .showImageForEmptyUri(R.drawable.ic_launcher)
                        .showStubImage(R.drawable.ic_launcher).build();
    
                ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(
                        this).threadPoolSize(3)
                        .threadPriority(Thread.NORM_PRIORITY - 1)
                        .denyCacheImageMultipleSizesInMemory().offOutOfMemoryHandling()
                        .memoryCache(new UsingFreqLimitedMemoryCache(2 * 1024 * 1024))
                        .discCache(new UnlimitedDiscCache(cacheDir))
                        .defaultDisplayImageOptions(optionsWithFakeDisplayer) 
                        .enableLogging().build();
                ImageLoader.getInstance().init(config);
    
    ////////////////////////
    public class ClansListViewFactory implements
            RemoteViewsService.RemoteViewsFactory {
    
        @Override
        public RemoteViews getViewAt(int position) {
            row = null;
            row = new RemoteViews(context.getPackageName(),
                    R.layout.clans_clan_thumbnail);
    
            if(arrayList != null && !arrayList.isEmpty()){
                  ImageLoader.getInstance().loadImage(arrayList.get(position).getClansIconSrc(),
                        new SimpleImageLoadingListener() {
    
                            @Override
                            public void onLoadingComplete(String imageUri,
                                    View view, Bitmap loadedImage) {
                row.setImageViewBitmap(R.id.clan_icon,loadedImage);
                                super.onLoadingComplete(imageUri, view, loadedImage);
                            }
                        });
    
    
            }
    
            return row;
        }
    

    it is listview factory for widget ImageLoader work well into another activity please help

    Problem 
    opened by daimonkor 19
  • De/Encoding for File URI image load problem

    De/Encoding for File URI image load problem

    For an image file: /storage/sdcard0/groupurchase/cache/http%3A%2F%2Fd2.lashouimg.com%2Fzt_mobile_220%2F201211%2F29%2F135417696321262100.jpg

    imageLoader tries to load an decoded file path which is incorrect:

    02-25 13:20:51.085: E/ImageLoader(27155): java.io.FileNotFoundException: /storage/sdcard0/groupurchase/cache/http:/d2.lashouimg.com/zt_mobile_220/201211/29/135417696321262100.jpg: open failed: ENOENT (No such file or directory)
    

    It should keep the encoded string as it is, and read by stream.

    The problem is caused by imageloader code below:

    final class ImageLoadingInfo {
    ...
        public ImageLoadingInfo(String uri, ImageView imageView, ImageSize targetSize, DisplayImageOptions options, ImageLoadingListener listener, ReentrantLock loadFromUriLock) {
            this.uri = Uri.encode(uri, "@#&=*+-_.,:!?()/~'%");
            ...
        }
    }
    
    Bug 
    opened by zoularry 18
  • Adding a progress callback for downloaded procent

    Adding a progress callback for downloaded procent

    Hi, and thank you for your wonderful library. Like title say I want to implement a ProgressDialog which show the current progress in % of download completed

    Feature 
    opened by pr0t3us 18
  • loadImageSync return null

    loadImageSync return null

    hello, guys. why when i use "loadImageSync" , it returned null.

    ImageLoader imageLoader = ImageLoader.getInstance();
    Bitmap bitmap =  imageLoader.loadImageSync("http://thumb.dongtw.com/?width=240&height=180&url=http%3A%2F%2Fs2.imgs.cc%2Fimg%2Fjdr4HwY.jpg");
    imageView.setImageBitmap(bitmap);
    bitmap is null, 
    

    but when i use

    imageLoader.displayImage("http://thumb.dongtw.com/?width=320&height=180&url=http%3A%2F%2Fs2.imgs.cc%2Fimg%2Fjdr4HwY.jpg", imageView);
    

    it worked well. so why this happened, thx, :)

    Problem 
    opened by saltcoffee 17
  • Bug own cache dir

    Bug own cache dir

    File cacheDir = StorageUtils.getOwnCacheDirectory(context, "UniversalImageLoader/Cache");

            ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context)
        .memoryCacheExtraOptions(480, 800) // max width, max height
        .discCacheExtraOptions(480, 800, CompressFormat.JPEG, 75) // Can slow ImageLoader, use it carefully (Better don't use it)
        .threadPoolSize(3)
        .threadPriority(Thread.NORM_PRIORITY - 1)
        .denyCacheImageMultipleSizesInMemory()
        .offOutOfMemoryHandling()
        .memoryCache(new UsingFreqLimitedMemoryCache(2 * 1024 * 1024)) // You can pass your own memory cache implementation
        .discCache(new UnlimitedDiscCache(cacheDir)) // You can pass your own disc cache implementation
        .discCacheFileNameGenerator(new HashCodeFileNameGenerator())
        .imageDownloader(new URLConnectionImageDownloader(5 * 1000, 20 * 1000)) // connectTimeout (5 s), readTimeout (20 s)
        .tasksProcessingOrder(QueueProcessingType.FIFO)
    
        .enableLogging()
        .build();
    
    
        ImageLoader.getInstance().init(config);
    
        optionsWithFakeDisplayer = new DisplayImageOptions.Builder().displayer(new FakeBitmapDisplayer()).cacheOnDisc().build();
    

    try this code

    File cacheDir = StorageUtils.getOwnCacheDirectory(context, "UniversalImageLoader/Cache");
    optionsWithFakeDisplayer = new DisplayImageOptions.Builder().displayer(new FakeBitmapDisplayer()).cacheInMemory (). cacheOnDisc().build();
    
    ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context)
        .threadPoolSize(3)
        .threadPriority(Thread.NORM_PRIORITY - 1)
        .denyCacheImageMultipleSizesInMemory()
        .offOutOfMemoryHandling()
        .memoryCache(new UsingFreqLimitedMemoryCache(2 * 1024 * 1024)) // You can pass your own memory cache implementation
        .discCache(new UnlimitedDiscCache(cacheDir)).defaultDisplayImageOptions(optionsWithFakeDisplayer) // You can pass your own disc cache implementation
    
    
        .enableLogging()
        .build();
    
    ImageLoader.getInstance().init(config);
    

    UILWidgetProvider.java file modified (read up), but cache recorded to default external cache dir app (Android/data/....) Please fix it or help me)))

    Problem 
    opened by daimonkor 17
  • Cannot load image from the same uri twice

    Cannot load image from the same uri twice

    EXAMPLE:

    1. you have three image view objects:
       imageView1 
       imageView2 
       imageView3
    
    1. you have two image sources: http://server.com/a.jpg and http://server.com/b.jpg
    2. than you need to download:
        http://server.com/a.jpg => imageView1
        http://server.com/a.jpg => imageView2
        http://server.com/b.jpg => imageView3
    

    As a result of operations from above you will get:

        imageView1 (has image)
        imageView2 (no image - cancelled)
        imageView3 (has image)
    

    How can I solve this issue?

    P.S. Do I have any possibility to find that

       a.jpg
    

    in the memory or disc cache somehow?

    opened by ddmytrenko 16
  • How to process bitmap before caching?

    How to process bitmap before caching?

    For a subset of the images that I'm downloading, I want to be able to crop the image to a circle. I want it to be done on download and before caching, rather than every time the image is displayed.

    Is there some way to do this and have the library cache the processed image rather than what it fetches from the server?

    I've seen that DisplayImageOptions has a preprocessor option, but it wouldn't be applying the change directly to the cached image, would it? Would I have to extend the BaseImageDecoder class?

    Thanks a bunch!

    Question 
    opened by ankushg 16
  • Uncaught translation error: com.android.dx.cf.code.SimException

    Uncaught translation error: com.android.dx.cf.code.SimException

    build output: Uncaught translation error: com.android.dx.cf.code.SimException: ERROR in com.nostra13.universalimageloader.core.ImageLoaderConfiguration.:(Lcom/nostra13/universalimageloader/core/ImageLoaderConfiguration$Builder;)V: invalid opcode ba - invokedynamic requires --min-sdk-version >= 26 (currently 13)

    how to solve the problem

    opened by Fat-Ting 0
  • Improve GRADLE build Performance

    Improve GRADLE build Performance

    Parallel builds. This project contains multiple modules. Parallel builds can improve the build speed by executing tasks in parallel. We can enable this feature by setting org.gradle.parallel=true.

    Configuration on demand. Configuration on demand tells Gradle to configure modules that only are relevant to the requested tasks instead of configuring all of them. We can enable this feature by setting org.gradle.configureondemand=true.

    gradle caching. Shared caches can reduce the number of tasks you need to execute by reusing outputs already generated elsewhere. This can significantly decrease build times. We can enable this feature by setting org.gradle.caching=true.

    ===================== If there are any inappropriate modifications in this PR, please give me a reply and I will change them.

    opened by i-Taozi 0
Owner
Sergey Tarasevich
Clean coder
Sergey Tarasevich
A powerful image downloading and caching library for Android

Picasso A powerful image downloading and caching library for Android For more information please see the website Download Download the latest AAR from

Square 18.4k Dec 31, 2022
BRVAH:Powerful and flexible RecyclerAdapter

BRVAH http://www.recyclerview.org/ Powerful and flexible RecyclerView Adapter, Please feel free to use this. (Welcome to Star and Fork) 强大而灵活的Recycler

陈宇明 23.3k Jan 4, 2023
An Android library for managing images and the memory they use.

Fresco Fresco is a powerful system for displaying images in Android applications. Fresco takes care of image loading and display, so you don't have to

Meta 16.9k Jan 3, 2023
Android Auto Apps Downloader (AAAD) is an app for Android Phones that downloads popular Android Auto 3rd party apps and installs them in the correct way to have them in Android Auto.

Android Auto Apps Downloader (AAAD) is an app for Android Phones that downloads popular Android Auto 3rd party apps and installs them in the correct way to have them in Android Auto.

Gabriele Rizzo 865 Jan 2, 2023
lazy-language-loader improves loading times when changing your language by only reloading the language instead of all the game resources!

lazy-language-loader lazy-language-loader improves loading times when changing your language by only reloading the language instead of all the game re

Shalom Ademuwagun 7 Sep 7, 2022
Simple springboot API for addressBook. Supports all REST controllers and have custom error handling for every specific case, also supports redis caching.

AddressBook-SpringBoot-API Simple Springboot API for addressBook with redis cache. Supports all REST controllers and have custom error handling for ev

Shirish Saxena 1 Jan 21, 2022
Spring-boot application using redis as a caching database

Java Spring-boot application using Redis as a caching database Running Application Entities involved Two main entities are involved MasterHouse (maste

null 18 Aug 9, 2022
Library to generate images from layers

react-native-image-generator Library for generate images from other images Installation yarn add react-native-image-generator Usage import { generate

Evgeny Usov 13 Nov 16, 2022
Stetho is a debug bridge for Android applications, enabling the powerful Chrome Developer Tools and much more.

Stetho Stetho is a sophisticated debug bridge for Android applications. When enabled, developers have access to the Chrome Developer Tools feature nat

Meta 12.6k Jan 3, 2023
An extremely flexible yet vanilla-esque multiblock mod, that embraces aspects of MultiblockTweaker and Modular Machinery.

Multiblocked Multiblocked (mbd) is an extremely flexible yet vanilla-esque multiblock mod, that embraces aspects of MultiblockTweaker and Modular Mach

Cleanroom 36 Jan 4, 2023
A lazily evaluated, functional, flexible and concise Lisp.

KamilaLisp A lazily evaluated, functional, flexible and concise Lisp modelled after Haskell and APL, among others. ;; Hello, world! (println "Hello, w

Kamila Szewczyk 42 Dec 15, 2022
Universal, flexible, high-performance distributed ID generator

CosId Universal, flexible, high-performance distributed ID generator 中文文档 Introduction CosId aims to provide a universal, flexible and high-performanc

Ahoo Wang 256 Dec 27, 2022
Processing and node.js project for rendering MouseGAN images from RunwayML

Computer MouseGAN Processing and node.js project for rendering MouseGAN images from RunwayML. Usage Clone or download this repository. git clone https

Coding Train 17 Apr 1, 2022
Project for coding information into images via teganography and cryptography.

SecurePic This project is created as part of the 'Software Engineering' lecture in summer semester 2022 in the Applied Computer Science course at DHBW

Frederik Wolter 3 Jun 6, 2022
A manager tool to categorize game assets such as images and sounds/music. The tool enables you to tag these files, so that finding them by tags allows fast searches.

BtAssetManager This application allows you to easily categorize large amounts of image and sound files. You can apply tags to each individual file to

null 21 Sep 15, 2022
a simple program to turn stockX images into gifs!

StockX Gif Converter make stockx images look cool Idea I got this idea from Fyko/stockx-gif-next Usage import me.brennan.stockxgiffer.StockXGiffer; p

Brennan 7 Jul 19, 2022
🏗 Build container images for your Java applications.

Jib ☑️ Jib User Survey What do you like best about Jib? What needs to be improved? Please tell us by taking a one-minute survey. Your responses will h

null 12.4k Jan 9, 2023
Aye - an open source tool for scanning images on Kubernetes cluster

Aye is an open source tool for scanning images on Kubernetes cluster. It uses Anchore CLI behind the scenes to get information about all images that are currently on the cluster. It also provides Prometheus metrics for each image, so teams are aware of different levels of vulnerabilities found inside them.

null 4 Sep 4, 2022
A command-line tool to generate different types of noise as images.

noisegen A command-line tool to generate different types of noise as images. Usage Run one of the releases, either the JAR using java -jar noisegen-0.

Tommy Ettinger 6 Jul 21, 2022