/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

  1. package com.nostra13.example.universalimageloader;
  2. import android.graphics.Bitmap;
  3. import android.os.Bundle;
  4. import android.os.Parcelable;
  5. import android.support.v4.view.PagerAdapter;
  6. import android.support.v4.view.ViewPager;
  7. import android.view.LayoutInflater;
  8. import android.view.View;
  9. import android.view.animation.Animation;
  10. import android.view.animation.AnimationUtils;
  11. import android.widget.ImageView;
  12. import android.widget.ProgressBar;
  13. import android.widget.Toast;
  14. import com.nostra13.universalimageloader.core.DisplayImageOptions;
  15. import com.nostra13.universalimageloader.core.assist.FailReason;
  16. import com.nostra13.universalimageloader.core.assist.ImageLoadingListener;
  17. import com.nostra13.universalimageloader.core.assist.ImageScaleType;
  18. /**
  19. * @author Sergey Tarasevich (nostra13[at]gmail[dot]com)
  20. */
  21. public class ImagePagerActivity extends BaseActivity {
  22. private ViewPager pager;
  23. private DisplayImageOptions options;
  24. public void onCreate(Bundle savedInstanceState) {
  25. super.onCreate(savedInstanceState);
  26. setContentView(R.layout.ac_image_pager);
  27. Bundle bundle = getIntent().getExtras();
  28. String[] imageUrls = bundle.getStringArray(Extra.IMAGES);
  29. int pagerPosition = bundle.getInt(Extra.IMAGE_POSITION, 0);
  30. options = new DisplayImageOptions.Builder()
  31. .showImageForEmptyUri(R.drawable.image_for_empty_url)
  32. .cacheOnDisc()
  33. .imageScaleType(ImageScaleType.EXACT)
  34. .build();
  35. pager = (ViewPager) findViewById(R.id.pager);
  36. pager.setAdapter(new ImagePagerAdapter(imageUrls));
  37. pager.setCurrentItem(pagerPosition);
  38. }
  39. @Override
  40. protected void onStop() {
  41. imageLoader.stop();
  42. super.onStop();
  43. }
  44. private class ImagePagerAdapter extends PagerAdapter {
  45. private String[] images;
  46. private LayoutInflater inflater;
  47. ImagePagerAdapter(String[] images) {
  48. this.images = images;
  49. inflater = getLayoutInflater();
  50. }
  51. @Override
  52. public void destroyItem(View container, int position, Object object) {
  53. ((ViewPager) container).removeView((View) object);
  54. }
  55. @Override
  56. public void finishUpdate(View container) {
  57. }
  58. @Override
  59. public int getCount() {
  60. return images.length;
  61. }
  62. @Override
  63. public Object instantiateItem(View view, int position) {
  64. final View imageLayout = inflater.inflate(R.layout.item_pager_image, null);
  65. final ImageView imageView = (ImageView) imageLayout.findViewById(R.id.image);
  66. final ProgressBar spinner = (ProgressBar) imageLayout.findViewById(R.id.loading);
  67. imageLoader.displayImage(images[position], imageView, options, new ImageLoadingListener() {
  68. @Override
  69. public void onLoadingStarted() {
  70. spinner.setVisibility(View.VISIBLE);
  71. }
  72. @Override
  73. public void onLoadingFailed(FailReason failReason) {
  74. String message = null;
  75. switch (failReason) {
  76. case IO_ERROR:
  77. message = "Input/Output error";
  78. break;
  79. case OUT_OF_MEMORY:
  80. message = "Out Of Memory error";
  81. break;
  82. case UNKNOWN:
  83. message = "Unknown error";
  84. break;
  85. }
  86. Toast.makeText(ImagePagerActivity.this, message, Toast.LENGTH_SHORT).show();
  87. spinner.setVisibility(View.GONE);
  88. imageView.setImageResource(android.R.drawable.ic_delete);
  89. }
  90. @Override
  91. public void onLoadingComplete(Bitmap loadedImage) {
  92. spinner.setVisibility(View.GONE);
  93. Animation anim = AnimationUtils.loadAnimation(ImagePagerActivity.this, R.anim.fade_in);
  94. imageView.setAnimation(anim);
  95. anim.start();
  96. }
  97. @Override
  98. public void onLoadingCancelled() {
  99. // Do nothing
  100. }
  101. });
  102. ((ViewPager) view).addView(imageLayout, 0);
  103. return imageLayout;
  104. }
  105. @Override
  106. public boolean isViewFromObject(View view, Object object) {
  107. return view.equals(object);
  108. }
  109. @Override
  110. public void restoreState(Parcelable state, ClassLoader loader) {
  111. }
  112. @Override
  113. public Parcelable saveState() {
  114. return null;
  115. }
  116. @Override
  117. public void startUpdate(View container) {
  118. }
  119. }
  120. }