viewpager可以理解为一个容器:用来装载fragement这样的布局,最重要的是用到viewpager的地方 需要到v4包
也需要适配器
public class MainActivity extends Activity {
private List<ImageView> iv=new ArrayList<ImageView>();private ViewPager vp;
private mypageradapter adapter;
private Handler handler=new Handler(){
public void handleMessage(Message msg) {
vp.setCurrentItem(msg.what);
};
};
int index=0;//切换所需要的下标
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
vp=(ViewPager) findViewById(R.id.vp);
for (int i = 0; i < 4; i++) {
ImageView iview=new ImageView(this);
iview.setImageResource(R.drawable.ic_launcher);
iv.add(iview);
}
adapter=new mypageradapter();
vp.setAdapter(adapter);
new Thread(
new Runnable() {
public void run() {
while (true) {
SystemClock.sleep(3000);
index++;
if(index>iv.size()){
index=0;
}
handler.sendEmptyMessage(index);
}
}
}).start();
vp.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int arg0) {
//处理视图呈现后的操作
}
@Override//忽视
public void onPageScrolled(int arg0, float arg1, int arg2) {
// TODO Auto-generated method stub
}
@Override//忽视
public void onPageScrollStateChanged(int arg0) {
// TODO Auto-generated method stub
}
});
}
class mypageradapter extends PagerAdapter{
@Override // 强制重写--切换视图的数量
public int getCount() {
// TODO Auto-generated method stub
return iv.size();
}
@Override// 强制重写--判断页面死否为同一资源
public boolean isViewFromObject(View arg0, Object arg1) {
// TODO Auto-generated method stub
return arg0==arg1;
}
// 重写两个非抽象方法(重要)
@Override// 页面销毁调用
public void destroyItem(ViewGroup container, int position, Object object) {
// TODO Auto-generated method stub
//super.destroyItem(container, position, object);
container.removeView(iv.get(position));
}
@Override//页面缓存调用
public Object instantiateItem(ViewGroup container, int position) {
// TODO Auto-generated method stub
//return super.instantiateItem(container, position);
ImageView iview=iv.get(position);
container.addView(iview);
return iview;
}
}
}