重要的地方都加了注释,
public class MyViewpagerFragment extends Activity {
private ViewPager mViewPager;
private List<View> mViews = new ArrayList<>();//轮播页集合
private ImageView[] mImageViews;//指示点集合
private ImageView imageView ;
private LinearLayout mDot;//指示点
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my_viewpager_fragment);
initView();
}
private void initView() {
mViewPager = (ViewPager) findViewById(R.id.id_viewpager);
mDot = (LinearLayout) findViewById(R.id.viewGroup);
/**将布局添加到 Viewpager 中*/
LayoutInflater inflater = LayoutInflater.from(this);
View tab01 = inflater.inflate(R.layout.tan01, null);
View tab02 = inflater.inflate(R.layout.tan02, null);
View tab03 = inflater.inflate(R.layout.tan03, null);
View tab04 = inflater.inflate(R.layout.tan04, null);
mViews.add(tab01);
mViews.add(tab02);
mViews.add(tab03);
mViews.add(tab04);
mImageViews = new ImageView[mViews.size()];
for (int i= 0; i < mViews.size();i++){
imageView = new ImageView(this);
imageView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
mImageViews[i] = imageView;
if (i == 0) {
mImageViews[i].setBackgroundResource(R.drawable.dot_focus);
} else {
mImageViews[i].setBackgroundResource(R.drawable.dot_blur);
}
// 轮播框架id 实例化group
// 在group框架中添加view,i就是圆点。
mDot.addView(mImageViews[i]);
}
mViewPager.setAdapter(new mPagerAdapter(mViews));
mViewPager.setOnPageChangeListener(new PageChangeListener());
}
/**滑动监听器*/
private class PageChangeListener implements ViewPager.OnPageChangeListener {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
/**滑动完成后调用*/
@Override
public void onPageSelected(int position) {
for (int i=0; i < mImageViews.length; i++){
mImageViews[i].setBackgroundResource(R.drawable.dot_focus);
if (position != i){
mImageViews[i].setBackgroundResource(R.drawable.dot_blur);
}
}
}
@Override
public void onPageScrollStateChanged(int state) {
}
}
private class mPagerAdapter extends PagerAdapter {
private List<View> views = null;
public mPagerAdapter(List<View> mViews) {
this.views = mViews;
}
/**销毁Item*/
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
((ViewPager) container).removeView(views.get(position));
}
/**初始化Item*/
@Override
public Object instantiateItem(ViewGroup container, int position) {
View view = mViews.get(position);
container.addView(view);
return view;
}
/**有多少个页面*/
@Override
public int getCount() {
return mViews.size();
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
}
}
}