package com.example.asamles.app.picassogridimage; import android.app.Activity; import android.os.Parcelable; import android.support.v4.view.PagerAdapter; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.ProgressBar; import com.example.asamles.app.R; import com.squareup.picasso.Callback; import com.squareup.picasso.Picasso; public class ImagePagerAdapter extends PagerAdapter { private String[] images; private LayoutInflater inflater; Activity activity; private ImageView imageView; ImagePagerAdapter(String[] images, LayoutInflater inflater, Activity activity) { this.images = images; this.inflater = inflater; this.activity = activity; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); } @Override public int getCount() { return images.length; } @Override public Object instantiateItem(ViewGroup view, int position) { View imageLayout = inflater.inflate(R.layout.pager_item_img, view, false); assert imageLayout != null; imageView = (ImageView) imageLayout.findViewById(R.id.image); final ProgressBar spinner = (ProgressBar) imageLayout.findViewById(R.id.loading); spinner.setVisibility(View.VISIBLE); Picasso.with(activity) .load(images[position]) .error(R.drawable.error) .into(imageView, new Callback() { @Override public void onSuccess() { imageView.setVisibility(View.VISIBLE); spinner.setVisibility(View.INVISIBLE); } @Override public void onError() { imageView.setVisibility(View.VISIBLE); spinner.setVisibility(View.INVISIBLE); } }); 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; } }