/UniversalImageLoaderExample/src/com/nostra13/example/universalimageloader/ImagePagerActivity.java
https://github.com/rashedulkabir/Android-Universal-Image-Loader · Java · 147 lines · 116 code · 27 blank · 4 comment · 1 complexity · 36a2a6f2704271d5ddfca28ca5c0f6ea MD5 · raw file
- package com.nostra13.example.universalimageloader;
- import android.graphics.Bitmap;
- import android.os.Bundle;
- import android.os.Parcelable;
- import android.support.v4.view.PagerAdapter;
- import android.support.v4.view.ViewPager;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.view.animation.Animation;
- import android.view.animation.AnimationUtils;
- import android.widget.ImageView;
- import android.widget.ProgressBar;
- import android.widget.Toast;
- import com.nostra13.universalimageloader.core.DisplayImageOptions;
- import com.nostra13.universalimageloader.core.assist.FailReason;
- import com.nostra13.universalimageloader.core.assist.ImageLoadingListener;
- import com.nostra13.universalimageloader.core.assist.ImageScaleType;
- /**
- * @author Sergey Tarasevich (nostra13[at]gmail[dot]com)
- */
- public class ImagePagerActivity extends BaseActivity {
- private ViewPager pager;
- private DisplayImageOptions options;
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.ac_image_pager);
- Bundle bundle = getIntent().getExtras();
- String[] imageUrls = bundle.getStringArray(Extra.IMAGES);
- int pagerPosition = bundle.getInt(Extra.IMAGE_POSITION, 0);
- options = new DisplayImageOptions.Builder()
- .showImageForEmptyUri(R.drawable.image_for_empty_url)
- .cacheOnDisc()
- .imageScaleType(ImageScaleType.EXACT)
- .build();
- pager = (ViewPager) findViewById(R.id.pager);
- pager.setAdapter(new ImagePagerAdapter(imageUrls));
- pager.setCurrentItem(pagerPosition);
- }
- @Override
- protected void onStop() {
- imageLoader.stop();
- super.onStop();
- }
- private class ImagePagerAdapter extends PagerAdapter {
- private String[] images;
- private LayoutInflater inflater;
- ImagePagerAdapter(String[] images) {
- this.images = images;
- inflater = getLayoutInflater();
- }
- @Override
- public void destroyItem(View container, int position, Object object) {
- ((ViewPager) container).removeView((View) object);
- }
- @Override
- public void finishUpdate(View container) {
- }
- @Override
- public int getCount() {
- return images.length;
- }
- @Override
- public Object instantiateItem(View view, int position) {
- final View imageLayout = inflater.inflate(R.layout.item_pager_image, null);
- final ImageView imageView = (ImageView) imageLayout.findViewById(R.id.image);
- final ProgressBar spinner = (ProgressBar) imageLayout.findViewById(R.id.loading);
- imageLoader.displayImage(images[position], imageView, options, new ImageLoadingListener() {
- @Override
- public void onLoadingStarted() {
- spinner.setVisibility(View.VISIBLE);
- }
- @Override
- public void onLoadingFailed(FailReason failReason) {
- String message = null;
- switch (failReason) {
- case IO_ERROR:
- message = "Input/Output error";
- break;
- case OUT_OF_MEMORY:
- message = "Out Of Memory error";
- break;
- case UNKNOWN:
- message = "Unknown error";
- break;
- }
- Toast.makeText(ImagePagerActivity.this, message, Toast.LENGTH_SHORT).show();
- spinner.setVisibility(View.GONE);
- imageView.setImageResource(android.R.drawable.ic_delete);
- }
- @Override
- public void onLoadingComplete(Bitmap loadedImage) {
- spinner.setVisibility(View.GONE);
- Animation anim = AnimationUtils.loadAnimation(ImagePagerActivity.this, R.anim.fade_in);
- imageView.setAnimation(anim);
- anim.start();
- }
- @Override
- public void onLoadingCancelled() {
- // Do nothing
- }
- });
- ((ViewPager) view).addView(imageLayout, 0);
- return imageLayout;
- }
- @Override
- public boolean isViewFromObject(View view, Object object) {
- return view.equals(object);
- }
- @Override
- public void restoreState(Parcelable state, ClassLoader loader) {
- }
- @Override
- public Parcelable saveState() {
- return null;
- }
- @Override
- public void startUpdate(View container) {
- }
- }
- }