UIL doesn't support scheme(protocol) by default [com.google.android.gms.tasks.zzu@3468ce7]
NakshatraJagtap opened this issue · 1 comments
ImageLoader: UIL doesn't support scheme(protocol) by default [com.google.android.gms.tasks.zzu@3468ce7]. You should implement this support yourself (BaseImageDownloader.getStreamFromOtherSource(...))
java.lang.UnsupportedOperationException: UIL doesn't support scheme(protocol) by default [com.google.android.gms.tasks.zzu@3468ce7]. You should implement this support yourself (BaseImageDownloader.getStreamFromOtherSource(...))
at com.nostra13.universalimageloader.core.download.BaseImageDownloader.getStreamFromOtherSource(BaseImageDownloader.java:280)
at com.nostra13.universalimageloader.core.download.BaseImageDownloader.getStream(BaseImageDownloader.java:99)
at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.downloadImage(LoadAndDisplayImageTask.java:291)
at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.tryCacheImageOnDisk(LoadAndDisplayImageTask.java:274)
at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.tryLoadBitmap(LoadAndDisplayImageTask.java:230)
at com.nostra13.universalimageloader.core.LoadAndDisplayImageTask.run(LoadAndDisplayImageTask.java:136)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
at java.lang.Thread.run(Thread.java:761)
`package com.example.nakshatra.travelstories.utils;
import android.content.Context;
import android.graphics.Bitmap;
import android.view.View;
import android.widget.ImageView;
import android.widget.ProgressBar;
import com.example.nakshatra.travelstories.R;
import com.nostra13.universalimageloader.cache.memory.impl.WeakMemoryCache;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.nostra13.universalimageloader.core.assist.FailReason;
import com.nostra13.universalimageloader.core.assist.ImageScaleType;
import com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer;
import com.nostra13.universalimageloader.core.listener.ImageLoadingListener;
public class UniversalImageLoader {
private static final int defaultImage= R.drawable.ic_profile;
private Context mContext;
public UniversalImageLoader(Context mContext) {
this.mContext = mContext;
}
public ImageLoaderConfiguration getConfig(){
DisplayImageOptions defaultOptions= new DisplayImageOptions.Builder()
.showImageOnLoading(defaultImage)
.showImageForEmptyUri(defaultImage)
.showImageOnFail(defaultImage)
.considerExifParams(true)
.cacheOnDisk(true)
.cacheOnDisk(true).cacheInMemory(true)
.cacheOnDisk(true).resetViewBeforeLoading(true)
.imageScaleType(ImageScaleType.EXACTLY)
.displayer(new FadeInBitmapDisplayer(300)).build();
ImageLoaderConfiguration configuration= new ImageLoaderConfiguration.Builder(mContext)
.defaultDisplayImageOptions(defaultOptions)
.memoryCache(new WeakMemoryCache())
.diskCacheSize(100*1024*1024).build();
return configuration;
}
/**
* this method can be used to set images that are static.
* it cant be used if the images are being changes in fragment/activity or if they are being set in a list or a grid view
* @param imgUrl
* @param image
* @param mProgressBar
* @param append
*/
public static void setImage(String imgUrl, ImageView image, final ProgressBar mProgressBar, String append){
ImageLoader imageLoader = ImageLoader.getInstance();
imageLoader.displayImage(append + imgUrl, image, new ImageLoadingListener() {
@Override
public void onLoadingStarted(String imageUri, View view) {
if(mProgressBar != null){
mProgressBar.setVisibility(View.VISIBLE);
}
}
@Override
public void onLoadingFailed(String imageUri, View view, FailReason failReason) {
if(mProgressBar != null){
mProgressBar.setVisibility(View.GONE);
}
}
@Override
public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
if(mProgressBar != null){
mProgressBar.setVisibility(View.GONE);
}
}
@Override
public void onLoadingCancelled(String imageUri, View view) {
if(mProgressBar != null){
mProgressBar.setVisibility(View.GONE);
}
}
});
}
}
`