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) {}
		});
	}
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值