package com.maksym.ABSPager; import android.content.Context; import android.graphics.Bitmap; import android.text.Html; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.CheckBox; import android.widget.ImageView; import android.widget.TextView; import com.nostra13.universalimageloader.core.DisplayImageOptions; import com.nostra13.universalimageloader.core.ImageLoader; import com.nostra13.universalimageloader.core.ImageLoaderConfiguration; import com.nostra13.universalimageloader.core.assist.ImageLoadingListener; import com.nostra13.universalimageloader.core.assist.SimpleImageLoadingListener; import com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer; import com.nostra13.universalimageloader.core.display.RoundedBitmapDisplayer; import java.util.ArrayList; import java.util.Collections; import java.util.LinkedList; import java.util.List; /** * Created by mitrofany4 on 8/15/13. */ public class FavListViewAdapter extends ArrayAdapter<GoogleImageBean> { private static LayoutInflater inflater=null; ArrayList<GoogleImageBean> favimages; public ImageLoader imageLoader; DisplayImageOptions options; private ImageLoadingListener animateFirstListener = new AnimateFirstDisplayListener(); public static class ViewHolder{ protected ImageView imgViewImage; protected TextView txtViewTitle; } public FavListViewAdapter(Context context, int resource, ArrayList<GoogleImageBean> objects) { super(context, resource, objects); options = new DisplayImageOptions.Builder() .showStubImage(R.drawable.ic_stub) .showImageForEmptyUri(R.drawable.ic_empty) .showImageOnFail(R.drawable.ic_error) .cacheInMemory(true) .cacheOnDisc(true) .displayer(new RoundedBitmapDisplayer(20)) .build(); this.favimages = objects; inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); imageLoader = ImageLoader.getInstance(); // Получили экземпляр imageLoader.init(ImageLoaderConfiguration.createDefault(context)); // Проинициализировали конфигом по умолчанию } public int getCount() { return favimages.size(); } public GoogleImageBean getItem(int position) { return favimages.get(position); } public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { View vi=convertView; final ViewHolder holder; final int _position=position; if(convertView==null){ vi = inflater.inflate(R.layout.favlistview_row, null); holder=new ViewHolder(); holder.imgViewImage=(ImageView)vi.findViewById(R.id.favImageView); holder.txtViewTitle=(TextView)vi.findViewById(R.id.titleTextView); vi.setTag(holder); } else holder=(ViewHolder)vi.getTag(); GoogleImageBean imageBean = (GoogleImageBean) favimages.get(position); imageLoader.displayImage(imageBean.getThumbUrl(), holder.imgViewImage, options, animateFirstListener); holder.txtViewTitle.setText(Html.fromHtml(imageBean.getTitle())); return vi; } private static class AnimateFirstDisplayListener extends SimpleImageLoadingListener { static final List<String> displayedImages = Collections.synchronizedList(new LinkedList<String>()); @Override public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) { if (loadedImage != null) { ImageView imageView = (ImageView) view; boolean firstDisplay = !displayedImages.contains(imageUri); if (firstDisplay) { FadeInBitmapDisplayer.animate(imageView, 500); displayedImages.add(imageUri); } } } } }