package in.srain.cube.demo.ui.sliderbanner; import android.view.LayoutInflater; import android.view.View; import android.widget.ImageView; import android.widget.TextView; import in.srain.cube.demo.R; import in.srain.cube.image.CubeImageView; import in.srain.cube.image.ImageLoader; import in.srain.cube.image.ImageLoaderFactory; import in.srain.cube.request.JsonData; import in.srain.cube.util.LocalDisplay; import in.srain.cube.views.DotView; import in.srain.cube.views.banner.BannerAdapter; import in.srain.cube.views.banner.SliderBanner; public class SliderBannerController { public final static int Height = (int) (LocalDisplay.SCREEN_WIDTH_PIXELS * 1f / 16 * 9.6f); private SliderBanner mSliderBanner; private ImageLoader mImageLoader; private InnerAdapter mBannerAdapter = new InnerAdapter(); private DotView mDotView; private View.OnClickListener mClickItemListener = new View.OnClickListener() { @Override public void onClick(View view) { } }; public SliderBannerController(SliderBanner sliderBanner) { mDotView = (DotView) sliderBanner.findViewById(R.id.demo_slider_banner_indicator); mImageLoader = ImageLoaderFactory.createStableImageLoader(sliderBanner.getContext()); mImageLoader.tryToAttachToContainer(sliderBanner.getContext()); mSliderBanner = sliderBanner; sliderBanner.setAdapter(mBannerAdapter); } public void play(JsonData list) { mBannerAdapter.setData(list); mBannerAdapter.notifyDataSetChanged(); mSliderBanner.setDotNum(list.length()); mSliderBanner.beginPlay(); } private class InnerAdapter extends BannerAdapter { private JsonData mDataList; public void setData(JsonData data) { mDataList = data; } public JsonData getItem(int position) { if (mDataList == null) return null; return mDataList.optJson(getPositionForIndicator(position)); } @Override public int getPositionForIndicator(int position) { if (null == mDataList || mDataList.length() == 0) { return 0; } return position % mDataList.length(); } @Override public View getView(LayoutInflater layoutInflater, int position) { View convertView = layoutInflater.inflate(R.layout.demo_slider_banner_item, null); JsonData item = getItem(position); CubeImageView imageView = (CubeImageView) convertView.findViewById(R.id.demo_banner_item_image); imageView.setAdjustViewBounds(false); imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); String pic = item.optString("pic"); imageView.loadImage(mImageLoader, pic); TextView titleTextView = (TextView) convertView.findViewById(R.id.demo_banner_item_title); titleTextView.setText(item.optString("title")); convertView.setTag(item); convertView.setOnClickListener(mClickItemListener); return convertView; } @Override public int getCount() { if (mDataList == null) { return 0; } return Integer.MAX_VALUE; } } }