转自文章http://www.eoeandroid.com/forum.php?mod=viewthread&tid=265036
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
vPager = (ViewPager) findViewById(R.id.vp);
linearLayout = (LinearLayout) findViewById(R.id.linearLayout);
pageViews = new ArrayList<View>();
dots = new ArrayList<ImageView>();
for (int i = 0; i < 4; i++)
{
View view = this.getLayoutInflater().inflate(R.layout.page_view, null);
((ImageView) view.findViewById(R.id.iv)).setImageResource(getResources().getIdentifier("a" + i, "drawable",
getPackageName()));
((TextView) view.findViewById(R.id.tv)).setText("describe" + i);
pageViews.add(view);
ImageView v = new ImageView(this);
v.setPadding(0, 0, 5, 0);
v.setImageResource(R.drawable.page_indicator_focused);
dots.add(v);
linearLayout.addView(v);
}
dots.get(0).setImageResource(R.drawable.page_indicator);
lastPosition = 0;
vPager.setAdapter(new MyPagerAdapter(pageViews));
vPager.setOnPageChangeListener(new OnPageChangeListener()
{
@Override
public void onPageSelected(int position)
{
dots.get(lastPosition).setImageResource(R.drawable.page_indicator_focused);
dots.get(position).setImageResource(R.drawable.page_indicator);
lastPosition = position;
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2)
{
}
@Override
public void onPageScrollStateChanged(int arg0)
{
}
});
}
复制代码
public class MyPagerAdapter extends PagerAdapter
{
private List<View> pageViews;
public MyPagerAdapter(List<View> pageViews)
{
this.pageViews = pageViews;
}
@Override
public int getCount()
{
return pageViews.size();
}
@Override
public boolean isViewFromObject(View v, Object obj)
{
return v == obj;
}
@Override
public int getItemPosition(Object obj)
{
return super.getItemPosition(obj);
}
@Override
public void destroyItem(View v, int position, Object obj)
{
((ViewPager) v).removeView(pageViews.get(position));
}
@Override
public Object instantiateItem(View v, int position)
{
((ViewPager) v).addView(pageViews.get(position));
return pageViews.get(position);
}
@Override
public void restoreState(Parcelable arg0, ClassLoader arg1)
{
}
@Override
public Parcelable saveState()
{
return null;
}
@Override
public void startUpdate(View arg0)
{
}
@Override
public void finishUpdate(View arg0)
{
}
}