package com.ptrprograms.gallery.adapter;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import com.ptrprograms.gallery.R;
import com.squareup.picasso.Picasso;
public class GalleryGridAdapter extends ArrayAdapter<String> {
private int mLayout;
public GalleryGridAdapter( Context context, int layoutId ) {
super( context, layoutId );
mLayout = layoutId;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ImageHolder mImageHolder = null;
if( convertView == null ) {
mImageHolder = new ImageHolder();
LayoutInflater inflater = LayoutInflater.from( getContext() );
convertView = inflater.inflate( mLayout, null );
mImageHolder.mGridImage = (ImageView) convertView.findViewById( R.id.grid_view_item );
if( mImageHolder.mGridImage == null )
return null;
convertView.setTag( mImageHolder );
} else
mImageHolder = ( ImageHolder ) convertView.getTag();
if( mImageHolder == null || mImageHolder.mGridImage == null )
return null;
mImageHolder.mGridImage.setVisibility( View.GONE );
setupGridImage( mImageHolder, position );
return convertView;
}
private void setupGridImage( ImageHolder holder, int position ) {
String imageUrl = getItem( position );
holder.mGridImage.setImageDrawable( null );
holder.mGridImage.setVisibility( View.VISIBLE );
Picasso.with(getContext()).load( imageUrl ).into( holder.mGridImage );
}
private class ImageHolder {
ImageView mGridImage;
}
}