xtends PagerAdapter { @Override public int getCount() { return totalCount; } @Override public boolean isViewFromObject(View view, Object object) { return view==object; } @Override public Object isViewFromObject(ViewGroup container, int position) { position %= showCount;
上面的代码就是定义了一个接口让外部来设置数据,提供setAdapter来为adapter赋值,同时初始化界面效果,init()方法中就是数据的初始化,代码如下:
private void init() { viewPager.setAdapter(null); carouselLayout.removeAllViews();
主要的逻辑代码就是这样啦,一个轮播图的控件就做好了。下面来看一下使用:
4、使用
xml中写我们的轮播图控件:
<com.yangqiangyu.test.carouselview.CarouselView android:layout_width="match_parent" android:layout_height="220dp"> </com.yangqiangyu.test.carouselview.CarouselView>
java代码中获取控件,同时设置接口
CarouselView carouselView = (CarouselView) findViewById(R.id.CarouselView);
carouselView.setAdapter(new CarouselView.Adapter() { @Override public boolean isEmpty() { return false; } @Override public View getView(int position) { View view = mInflater.inflate(R.layout.item,null); ImageView imageView = (ImageView) view.findViewById(R.id.image); imageView.setImageResource(mImagesSrc[position]); return view; } @Override public int getCount() { return mImagesSrc.length; } });
返回是否为空,在getView(int position)中ret |