package com.aincc.seoulexcursion.ui.control; import java.util.List; import android.content.Context; import android.support.v4.view.ViewPager; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import com.aincc.lib.ui.widget.page.APagerAdapter; import com.aincc.lib.util.ImageLoader; import com.aincc.lib.util.ImageWorker.ImageWorkerAdapter; import com.aincc.seoulexcursion.util.Logger; import com.aincc.seoulexcursion.App; import com.aincc.seoulexcursion.R; import com.aincc.seoulopenapi.model.AssetsMedia; /** * * <h3><b>AssetsMediaPagerAdapter</b></h3></br> * * 문화재 미디어 정보 표시 페이저 어댑터 * * @author aincc@barusoft.com * @version 1.0.0 * @since 1.0.0 */ public class AssetsMediaPagerAdapter extends APagerAdapter { private ImageLoader imageLoader; private ImageWorkerAdapter adapter; /** * * @since 1.0.0 * @param context */ public AssetsMediaPagerAdapter(Context context, List<? extends PageItem> pages) { super(context, pages); // 이미지 어댑터 adapter = new ImageWorkerAdapter() { @Override public int getSize() { return AssetsMediaPagerAdapter.this.pages.size(); } @Override public Object getItem(int num) { AssetsMedia media = ((MediaPageItem) AssetsMediaPagerAdapter.this.pages.get(num)).media; return media.FILEPATH + media.FILENAME; } }; // 이미지 로더 imageLoader = App.getImageLoader(adapter); } @Override public Object instantiateItem(ViewGroup container, int position) { Logger.d("instantiateItem " + position); ViewGroup layout = (ViewGroup) super.instantiateItem(container, position); MediaPageItem page = (MediaPageItem) pages.get(position); ImageView iv = (ImageView) layout.findViewById(R.id.image); AssetsMedia media = page.media; // 이미지 타입인 경우 이미지 표시 if (media.FILETYPE.equals("1")) { imageLoader.loadImage(media.FILEPATH + media.FILENAME, iv); } else { } return layout; } @Override public void destroyItem(ViewGroup container, int position, Object object) { Logger.d("destroyItem " + position); ((ViewPager) container).removeView((View) object); object = null; } /** * * <h3><b>PageItem</b></h3></br> * * 페이지 아이템 * * @author aincc@barusoft.com * @version 1.0.0 * @since 1.0.0 */ public static class MediaPageItem extends PageItem { /** * 미디어 정보 */ public AssetsMedia media; public MediaPageItem(int layout, AssetsMedia media) { super(layout); this.media = media; } } }