1、在布局文件中创建ViewPager
<android.support.v4.view.ViewPager
android:id="@+id/vp"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
2、自定ViewPagerAdapter继承PagerAdapter
public class ChoseViewPagerAdapter extends PagerAdapter{
private Context context;
private List<ImageView> images;
public ChoseViewPagerAdapter(Context context, List<ImageView> images) {
super();
this.context = context;
this.images = images;
}
@Override
public int getCount() {
return images.size();
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0==arg1;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView(images.get(position));
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
container.addView(images.get(position));
return images.get(position);
}
}
3、在Activity中的代码
public class ChoseFragment extends Fragment {
private ChoseViewPagerAdapter adapter;
private int[] imageIds={R.drawable.read1,R.drawable.read2,R.drawable.read3,R.drawable.read4,R.drawable.read1};
private ArrayList images;
private int oldPosition = 0;//记录上一次点的位置
private int currentItem; //当前页面
private ScheduledExecutorService scheduledExecutorService;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view= inflater.inflate(R.layout.fragment_chose, container, false);
initView(view);
initViewPager(view);
return view;
}
private void initViewPager(View v) {
images = new ArrayList<ImageView>();
for(int i =0; i < imageIds.length; i++){
ImageView imageView = new ImageView(getActivity());
imageView.setBackgroundResource(imageIds[i]);
images.add(imageView);
}
mViewPager=(ChildViewPager) v.findViewById(R.id.vp_chose_fragment);
adapter=new ChoseViewPagerAdapter(getActivity(), images);
mViewPager.setAdapter(adapter);
mViewPager.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int position) {
tvTitle.setText(titles[position]);
dots.get(oldPosition).setBackgroundResource(R.drawable.dot_normal);
dots.get(position).setBackgroundResource(R.drawable.dot_focused);
oldPosition = position;
currentItem = position;
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
@Override
public void onPageScrollStateChanged(int arg0) {
}
});
}
@Override
public void onStart() {
super.onStart();
scheduledExecutorService=Executors.newSingleThreadScheduledExecutor();
//每隔4秒钟切换一张图片
scheduledExecutorService.scheduleWithFixedDelay(new Runnable() {
@Override
public void run() {
currentItem = (currentItem +1) % imageIds.length;
//更新界面
handler.obtainMessage().sendToTarget();
}
}, 4, 4, TimeUnit.SECONDS);
}
private Handler handler=new Handler(){
//设置当前页面
public void handleMessage(Message msg) {
mViewPager.setCurrentItem(currentItem);
};
};
}