ViewPager实现简易轮播图

适配器:

public class MyAdapter extends PagerAdapter {
	private Context context;
	private List<Integer> list;
	public MyAdapter(Context context, List<Integer> list) {
		super();
		this.context = context;
		this.list = list;
	}
	//总数
	@Override
	public int getCount() {
		return Integer.MAX_VALUE;//最大值
	}
	//得到的视图与添加进来的是否一致  如果一致 返回true
	@Override
	public boolean isViewFromObject(View arg0, Object arg1) {
		return arg0==arg1;
	}
	//创建视图
	@Override
	public Object instantiateItem(ViewGroup container, int position) {
		//创建ImageView 
		ImageView imageView = new ImageView(context);
		//设置图片  src 按照比例进行展示图片  Background  全部充满展示
		imageView.setImageResource(list.get(position%list.size()));//通过取模的形式 在list集合中取出图片
		//getResources res文件
//		imageView.setBackground(context.getResources().getDrawable(list.get(position)));
		//拉伸
		imageView.setScaleType(ScaleType.FIT_XY);
		container.addView(imageView);
		
		return imageView;
	}
	//删除视图
	@Override
	public void destroyItem(ViewGroup container, int position, Object object) {
		container.removeView((View) object);
	}
}

MainActivity:

public class MainActivity extends Activity {
	private ViewPager view_pager;
	private RadioGroup radio_group;
	private List<Integer> list;
	private Handler handler=new Handler(){
		@Override
		public void handleMessage(Message msg) {
			msg.what++;
			view_pager.setCurrentItem(msg.what);
			handler.sendEmptyMessageDelayed(msg.what, 1500);
			super.handleMessage(msg);
		}
	};
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		view_pager = (ViewPager) findViewById(R.id.view_pager);
		radio_group = (RadioGroup) findViewById(R.id.radio_group);
		
		list = new ArrayList<Integer>();
		list.add(R.drawable.g1);
        list.add(R.drawable.g2);
        list.add(R.drawable.g3);
        list.add(R.drawable.g4);
        list.add(R.drawable.g5);
        MyAdapter adapter = new MyAdapter(MainActivity.this,list);
        view_pager.setAdapter(adapter);
        //将当前默认展示的图片 设置在中间
        view_pager.setCurrentItem(list.size()*10000);
        //得到图片的位置
        //延迟1秒 执行runnable
        handler.sendEmptyMessageDelayed(view_pager.getCurrentItem(), 1500);
        //页选中监听
        view_pager.setOnPageChangeListener(new OnPageChangeListener() {
        	//选择的页
			@Override
			public void onPageSelected(int arg0) {
				//当选中第?页时,选择对应的Button
				switch (arg0%list.size()) {
				case 0:
					radio_group.check(R.id.radio1);
					break;
				case 1:
					radio_group.check(R.id.radio2);
					break;
				case 2:
					radio_group.check(R.id.radio3);
					break;
				case 3:
					radio_group.check(R.id.radio4);
					break;
				case 4:
					radio_group.check(R.id.radio5);
					break;

				default:
					break;
				}
			}
			//页的偏移量
			@Override
			public void onPageScrolled(int arg0, float arg1, int arg2) {}
			//页的状态
			@Override
			public void onPageScrollStateChanged(int arg0) {}
		});
	}
}

猜你喜欢

转载自blog.csdn.net/qq_41673194/article/details/80107170