package com.marvinlabs.widget.slideshow.adapter; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import java.util.Collection; /** * A GenericBitmapAdapter that loads images from application resources. * <p/> * Created by Vincent Mimoun-Prat @ MarvinLabs on 29/05/2014. */ public abstract class GenericResourceBitmapAdapter<T> extends GenericBitmapAdapter<T> { // The options to pass to the BitmapFactory used to decode the bitmaps private BitmapFactory.Options bitmapFactoryOptions; //============================================================================================== // GENERAL METHODS //== /** * Constructor * * @param context The context in which the adapter is created (activity) * @param items The items for which we have images to load */ public GenericResourceBitmapAdapter(Context context, Collection<T> items) { super(context, items); } /** * Constructor * * @param context The context in which the adapter is created (activity) * @param items The items for which we have images to load * @param bitmapFactoryOptions The options to pass to the BitmapFactory used to decode the * bitmaps */ public GenericResourceBitmapAdapter(Context context, Collection<T> items, BitmapFactory.Options bitmapFactoryOptions) { super(context, items); this.bitmapFactoryOptions = bitmapFactoryOptions; } //============================================================================================== // ASYNC MANAGEMENT METHODS //== protected abstract int getItemImageResourceId(T item, int position); @Override protected Bitmap asyncLoadBitmap(T item, int position) { Bitmap bm = BitmapFactory.decodeResource(getContext().getResources(), getItemImageResourceId(item, position), bitmapFactoryOptions); return bm; } }