ViewPager+Hanlder实现图片轮播

来源:互联网 发布:开淘宝店详细步骤 编辑:程序博客网 时间:2024/06/06 10:07

设置自定义的图片网址

例如:

*自定义一个集合用来存放图片地址* String[] arr={"http://pic8.nipic.com/20100701/5290458_114840036316_2.jpg",            "http://pic2.nipic.com/20090424/1468853_230119053_2.jpg",            "http://img3.3lian.com/2013/s1/20/d/57.jpg",            "http://pic39.nipic.com/20140226/18071023_164300608000_2.jpg"};

在布局文件中:

 <android.support.v4.view.ViewPager            android:id="@+id/vp"            android:layout_width="match_parent"            android:layout_height="200dp"></android.support.v4.view.ViewPager>

全局设置Handler

//new一个Handler Handler handler=new Handler(){        @Override        public void handleMessage(Message msg) {            super.handleMessage(msg);          int currentItem = vp.getCurrentItem();          currentItem++;          vp.setCurrentItem(currentItem);          sendMsg();        }    };

在Activity中调用v4包下的ViewPager

ViewPager vp = (ViewPager) findViewById(R.id.vp);//new一个Timer Timer timer=new Timer();            timer.schedule(new TimerTask() {                @Override                public void run() {                    handler.sendEmptyMessage(0);                }            },1,2000);             sendMsg(); //创建适配器        MyPageAdapter adapter = new MyPageAdapter();  vp.setAdapter(adapter);

//设置延时时间

private void sendMsg() {        handler.sendEmptyMessageDelayed(1,2000);    }

继承PagerAdapter

class MyPagerAdapter extends PagerAdapter{        //得到图片最大值        @Override        public int getCount() {            return Integer.MAX_VALUE;        }        @Override        public boolean isViewFromObject(View view, Object object) {            return view==object;        }        //展示图片        @Override        public Object instantiateItem(ViewGroup container, int position) {            ImageView iv=new ImageView(MainActivity.this);                iv.setScaleType(ImageView.ScaleType.FIT_XY);            ImageLoader.getInstance().displayImage(arr[position%arr.length],iv);            container.addView(iv);            return iv;        }        //销毁图片        @Override        public void destroyItem(ViewGroup container, int position, Object object) {            //super.destroyItem(container, position, object);            container.removeView((View) object);        }    }
原创粉丝点击