iewpager可以做很多事情,从最简单的导航,到页面菜单等等。那如何使用它呢,与ListView类似,我们也需要一个适配器,就是PagerAdapter。
首先看布局文件:
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent" />
具体业务逻辑如下:
public class GuideViewActivity extends Activity {
private ViewPager vp;
private int[] drawables;
private ImageView[] imageViews;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_guideview);
vp = (ViewPager) findViewById(R.id.viewpager);
imageData();
vp.setAdapter(new ViewPagerAdapter());
vp.setCurrentItem(0);
}
private void imageData() {
drawables = new int[] { R.drawable.guide_help01,
R.drawable.guide_help02, R.drawable.guide_help03 };
imageViews = new ImageView[drawables.length];
for (int i = 0; i < drawables.length; i++) {
ImageView img = new ImageView(this);
imageViews[i] = img;
imageViews[i].setBackgroundResource(drawables[i]);
}
}
public class ViewPagerAdapter extends PagerAdapter {
@Override
public int getCount() {
return drawables.length;
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == arg1;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
ImageView view = imageViews[position];
((ViewPager) container).removeView(view);
}
@Override
public Object instantiateItem(View container, int position) {
try {
if (imageViews[position].getParent() == null) {
((ViewPager) container).addView(imageViews[position], 0);
} else {
((ViewGroup) (imageViews[position].getParent()))
.removeView(imageViews[position]);
}
} catch (Exception e) {
}
if (position == imageViews.length - 1) {
imageViews[position].setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
GuideViewActivity.this.finish();
}
});
}
return imageViews[position % imageViews.length];
}
}
}
除此之外,ViewPager还有更高级的使用方法,比如定时自动滑动,参考http://blog.csdn.net/dsc114/article/details/46928277 和http://blog.csdn.net/dsc114/article/details/73614567