package com.fancl.iloyalty.adapter; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.os.Handler; import android.os.Parcelable; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup.LayoutParams; import android.widget.ImageButton; import android.widget.ImageView; import android.widget.ImageView.ScaleType; import android.widget.RelativeLayout; import com.fancl.iloyalty.Constants; import com.fancl.iloyalty.R; import com.fancl.iloyalty.item.AsyncImageView; import com.fancl.iloyalty.util.DeviceUtil; import com.viewpagerindicator.IconPagerAdapter; public class DetailImagesViewPagerAdapter extends PagerAdapter implements IconPagerAdapter { private Handler handler; private Activity activity; private List<RelativeLayout> mainLayoutList = new ArrayList<RelativeLayout>(); private List<ImageView> itemImageList = new ArrayList<ImageView>(); private List<String> imageList = new ArrayList<String>(); private List<String> tagList = new ArrayList<String>(); // For Bitmap private String imagePath; private boolean needAddPlayBtn = false; public DetailImagesViewPagerAdapter(Activity activity, List<String> imageList, Handler handler, String imagePath, boolean needAddPlayBtn) { this.imageList = imageList; this.activity = activity; this.handler = handler; this.imagePath = imagePath; this.needAddPlayBtn = needAddPlayBtn; setUpViews(); } @Override public void destroyItem(View arg0, int arg1, Object arg2) { ((ViewPager) arg0).removeView(mainLayoutList.get(arg1)); } @Override public void finishUpdate(View arg0) { } @Override public int getCount() { return mainLayoutList.size(); } @Override public Object instantiateItem(View arg0, int arg1) { ((ViewPager) arg0).addView(mainLayoutList.get(arg1), 0); return mainLayoutList.get(arg1); } @Override public boolean isViewFromObject(View arg0, Object arg1) { return arg0 == (arg1); } @Override public void restoreState(Parcelable arg0, ClassLoader arg1) { } @Override public Parcelable saveState() { return null; } @Override public void startUpdate(View arg0) { } private void setUpViews() { int imageListIndex = 0; for (int i = 0; i < imageList.size(); i++) { this.addImageToView(imageListIndex, imageList.get(i)); imageListIndex++; } } private void addImageToView(int position, String imageStr) { itemImageList.add(getImageView()); RelativeLayout relativeLayout = new RelativeLayout(activity); relativeLayout.setLayoutParams(new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); relativeLayout.addView(itemImageList.get(position)); mainLayoutList.add(relativeLayout); tagList.add(imageStr); AsyncImageView tmpImageView = (AsyncImageView) itemImageList.get(position); tmpImageView.setImageBitmap(null); tmpImageView.setRequestingUrl(handler, (imagePath + imageStr), Constants.IMAGE_FOLDER); if (needAddPlayBtn && position == 0) { ImageButton playButton = new ImageButton(activity); playButton.setBackgroundColor(activity.getResources().getColor(R.color.Transparent)); playButton.setImageDrawable(activity.getResources().getDrawable(R.drawable.btn_play_large)); RelativeLayout.LayoutParams playButtonLayoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); playButtonLayoutParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT, -1); playButtonLayoutParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, -1); relativeLayout.addView(playButton, playButtonLayoutParams); playButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub // Play video } }); } } private ImageView getImageView() { int width = DeviceUtil.getDeviceWidth(activity); int height = 0; width = Math.round(width*0.95F); height = Math.round(((float)width/308F)*176F); AsyncImageView imageView = new AsyncImageView(activity); imageView.setScaleType(ScaleType.FIT_XY); imageView.setBackgroundColor(activity.getResources().getColor(R.color.LightGrey)); RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(width, height); params.addRule(RelativeLayout.CENTER_IN_PARENT); imageView.setLayoutParams(params); return imageView; } @Override public int getIconResId(int index) { // return -1; return R.drawable.shop_detail_view_pager_indicator_dots; } }