In this Android Video Tutorial I am guiding about four different libraries for loading images using URL:
- Universal Image Loader
- Picasso
- Glide
- Fresco
Along with I am explaining their description, performance and implementation procedure is also added in this tutorial.
You can use these libraries by adding following dependencies and their implementation code:
1. Universal Image Loader:-
compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'
ImageLoaderConfiguration imageLoaderConfiguration = new ImageLoaderConfiguration.Builder(this).build();
ImageLoader imageLoader = ImageLoader.getInstance();
imageLoader.init(imageLoaderConfiguration);
DisplayImageOptions options = new DisplayImageOptions.Builder()
.showImageOnLoading(R.drawable.placeholder) // resource or drawable
.showImageForEmptyUri(R.drawable.empty) // resource or drawable
.showImageOnFail(R.drawable.failed) // resource or drawable
.delayBeforeLoading(1000)
.resetViewBeforeLoading(true) // default
.cacheInMemory(true) // default => false
.cacheOnDisk(true) // default => false
.build();
imageLoader.displayImage(imageURI, ivImage, options, new ImageLoadingListener() {
@Override
public void onLoadingStarted(String imageUri, View view) {
Toast.makeText(getApplicationContext(), "Loading Started", Toast.LENGTH_SHORT).show();
}
@Override
public void onLoadingFailed(String imageUri, View view, FailReason failReason) {
Toast.makeText(getApplicationContext(), "Loading Failed", Toast.LENGTH_SHORT).show();
}
@Override
public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
Toast.makeText(getApplicationContext(), "Loading Complete", Toast.LENGTH_SHORT).show();
}
@Override
public void onLoadingCancelled(String imageUri, View view) {
Toast.makeText(getApplicationContext(), "Loading Cancelled", Toast.LENGTH_SHORT).show();
}
});
2. Picasso:-
compile 'com.squareup.picasso:picasso:2.5.2'
Picasso.with(this)
.load(imageURI)
.placeholder(R.drawable.placeholder)
.error(R.drawable.failed)
.into(ivImage);
3. Glide:-
compile 'com.github.bumptech.glide:glide:3.6.1'
Glide.with(this)
.load(imageURI)
.placeholder(R.drawable.placeholder)
.error(R.drawable.failed)
.into(ivImage);
4. Fresco:-
compile 'com.facebook.fresco:fresco:0.14.1'
ControllerListener controllerListener = new ControllerListener() {
@Override
public void onSubmit(String id, Object callerContext) {
Toast.makeText(ImageLoaderActivity.this, "Called before the image request is submitted", Toast.LENGTH_SHORT).show();
}
@Override
public void onFinalImageSet(String id, Object imageInfo, Animatable animatable) {
Toast.makeText(ImageLoaderActivity.this, "When final image is loaded", Toast.LENGTH_SHORT).show();
}
@Override
public void onIntermediateImageSet(String id, Object imageInfo) {
Toast.makeText(ImageLoaderActivity.this, "When intermediate image is Loaded", Toast.LENGTH_SHORT).show();
}
@Override
public void onIntermediateImageFailed(String id, Throwable throwable) {
Toast.makeText(ImageLoaderActivity.this, "While intermediate image loading failed", Toast.LENGTH_SHORT).show();
}
@Override
public void onFailure(String id, Throwable throwable) {
Toast.makeText(ImageLoaderActivity.this, "Image Loading failed", Toast.LENGTH_SHORT).show();
}
@Override
public void onRelease(String id) {
Toast.makeText(ImageLoaderActivity.this, "When controller releases the fetched Image", Toast.LENGTH_SHORT).show();
}
};
Uri imageUri = Uri.parse(imageURI);
DraweeController controller = Fresco.newDraweeControllerBuilder()
.setUri(imageUri)
.setControllerListener(controllerListener)
.setAutoPlayAnimations(true)
.build();
sdvImage.setController(controller);
I had also attached image loader demo file, you can download it for further reference.
0 Comment(s)