Android Open Source - Android-Universal-Image-Loader-Wrapper Image Pager Activity






From Project

Back to project page Android-Universal-Image-Loader-Wrapper.

License

The source code is released under:

Apache License

If you think the Android project Android-Universal-Image-Loader-Wrapper listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/*******************************************************************************
 * Copyright 2011-2013 Sergey Tarasevich
 */*from   ww w  .j  av  a  2s . c o  m*/
 * 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.
 *******************************************************************************/
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.ViewGroup;
import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.Toast;

import com.nostra13.example.universalimageloader.Constants.Extra;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.assist.FailReason;
import com.nostra13.universalimageloader.core.assist.ImageScaleType;
import com.nostra13.universalimageloader.core.assist.SimpleImageLoadingListener;
import com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer;

/**
 * @author Sergey Tarasevich (nostra13[at]gmail[dot]com)
 */
public class ImagePagerActivity extends BaseActivity {

  private static final String STATE_POSITION = "STATE_POSITION";

  DisplayImageOptions options;

  ViewPager pager;

  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);

    if (savedInstanceState != null) {
      pagerPosition = savedInstanceState.getInt(STATE_POSITION);
    }

    options = new DisplayImageOptions.Builder()
      .showImageForEmptyUri(R.drawable.ic_empty)
      .showImageOnFail(R.drawable.ic_error)
      .resetViewBeforeLoading(true)
      .cacheOnDisc(true)
      .imageScaleType(ImageScaleType.EXACTLY)
      .bitmapConfig(Bitmap.Config.RGB_565)
      .displayer(new FadeInBitmapDisplayer(300))
      .build();

    pager = (ViewPager) findViewById(R.id.pager);
    pager.setAdapter(new ImagePagerAdapter(imageUrls));
    pager.setCurrentItem(pagerPosition);
  }

  @Override
  public void onSaveInstanceState(Bundle outState) {
    outState.putInt(STATE_POSITION, pager.getCurrentItem());
  }

  private class ImagePagerAdapter extends PagerAdapter {

    private String[] images;
    private LayoutInflater inflater;

    ImagePagerAdapter(String[] images) {
      this.images = images;
      inflater = getLayoutInflater();
    }

    @Override
    public void destroyItem(ViewGroup 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(ViewGroup view, int position) {
      View imageLayout = inflater.inflate(R.layout.item_pager_image, view, false);
      ImageView imageView = (ImageView) imageLayout.findViewById(R.id.image);
      final ProgressBar spinner = (ProgressBar) imageLayout.findViewById(R.id.loading);

      imageLoader.displayImage(images[position], imageView, options, new SimpleImageLoadingListener() {
        @Override
        public void onLoadingStarted(String imageUri, View view) {
          spinner.setVisibility(View.VISIBLE);
        }

        @Override
        public void onLoadingFailed(String imageUri, View view, FailReason failReason) {
          String message = null;
          switch (failReason.getType()) {
            case IO_ERROR:
              message = "Input/Output error";
              break;
            case DECODING_ERROR:
              message = "Image can't be decoded";
              break;
            case NETWORK_DENIED:
              message = "Downloads are denied";
              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);
        }

        @Override
        public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
          spinner.setVisibility(View.GONE);
        }
      });

      ((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) {
    }
  }
}




Java Source Code List

com.nostra13.example.universalimageloader.AbsListViewBaseActivity.java
com.nostra13.example.universalimageloader.BaseActivity.java
com.nostra13.example.universalimageloader.Constants.java
com.nostra13.example.universalimageloader.HomeActivity.java
com.nostra13.example.universalimageloader.ImageGalleryActivity.java
com.nostra13.example.universalimageloader.ImageGridActivity.java
com.nostra13.example.universalimageloader.ImageListActivity.java
com.nostra13.example.universalimageloader.ImagePagerActivity.java
com.nostra13.example.universalimageloader.UILApplication.java
com.nostra13.example.universalimageloader.widget.UILWidgetProvider.java
mobi.sherif.example.universalimageloaderwrapper.ImageLoadingViewActivity.java
mobi.sherif.util.ui.ImageLoadingView.java