Android之viewPage

记录一下简单的viewpage的使用


import java.util.ArrayList;
import java.util.List;

import android.os.Bundle;
import android.app.Activity;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
/**
 * ViewPager 是一个以左右滑动展示数据的适配器控件
 *
 */
public class MainActivity extends Activity {
	private ViewPager viewPager;
	private List<ImageView> list;//viewpager的数据源   viewpager中每一项都是一个imageview
	private int[] images={R.drawable.txt_theme17,R.drawable.txt_theme26,R.drawable.txt_theme29};
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		viewPager=(ViewPager) findViewById(R.id.viewpager);
		//1.准备数据源   图片集合或者是数组
		list=new ArrayList<ImageView>();
		for(int i=0;i<images.length;i++){
			ImageView iv=new ImageView(MainActivity.this);
			iv.setImageResource(images[i]);
			list.add(iv);
		}
		//2.将数据源加载到适配器
		MyPagerAdapter adapter=new MyPagerAdapter();
		//3.将适配器数据加载到控件中
		viewPager.setAdapter(adapter);
	}
	
	/**
	 * 继承PagerAdapter实现自定义的viewpager的适配器
	 */
	public class MyPagerAdapter extends PagerAdapter{
		/*
		 * 当前适配器加载的数据的条目
		 */
		@Override
		public int getCount() {
			return list.size();
		}
		/*
		 * 判断viewpager中加载的view与instantiateItem实例化的view是否一致
		 */
		@Override
		public boolean isViewFromObject(View arg0, Object arg1) {
			return arg0==arg1;
		}
		/*
		 * 根据指定的下标移除viewpager中的pager页
		 * 第一个参数 ViewGroup container 表示当前创建的pager页所属的viewpaer控件
		 * 第二个参数 int position  表示当前创建pager页的下标
		 */
		@Override
		public void destroyItem(ViewGroup container, int position, Object object) {
			container.removeView(list.get(position));
		}
		/*
		 * 根据指定的下标创建viewpager中的pager页
		 * 第一个参数 ViewGroup container 表示当前创建的pager页所属的viewpaer控件
		 * 第二个参数 int position  表示当前创建pager页的下标
		 */
		@Override
		public Object instantiateItem(ViewGroup container, int position) {
			container.addView(list.get(position));//将加载数据的pager页添加到viewpager中
			return list.get(position);
		}
		
	}

}
发布了14 篇原创文章 · 获赞 5 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/csdnwangyong/article/details/82260568