ViewPager 自动切换广告效果

来源:互联网 发布:mac iphone 刷机软件 编辑:程序博客网 时间:2024/05/18 02:56
/**
步骤:
1 新建组件 <android.support.v4.view.ViewPager/>
2   activity中找到组件并设置继承至PagerAdapter的Adapter类
3 复写PagerAdapter中的
public int getCount() {}
public Object instantiateItem(ViewGroup container, int position) {}
public boolean isViewFromObject(View view, Object object) {}
public void destroyItem(ViewGroup container, int position, Object object) {}
4   自动循环播放方式:
 * 1、定时器:Timer
 * 2、开子线程 while  true 循环
 * 3、ColckManager 
 * 4、 用handler 发送延时信息,实现循环
第4种方式相对省性能
以下是一个实例
*/

//1 xml定义

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

//2 activity主要代码

viewPager.setAdapter(new MyPagerAdapter());viewPager.setOnPageChangeListener(new OnPageChangeListener() {/** * 页面切换后调用  * position  新的页面位置 */@Overridepublic void onPageSelected(int position) {}@Override/** * 页面正在滑动的时候,回调 */public void onPageScrolled(int position, float positionOffset,int positionOffsetPixels) {}@Override/** * 当页面状态发生变化的时候,回调 */public void onPageScrollStateChanged(int state) {}});//3  PagerAdapterprivate class MyPagerAdapter extends PagerAdapter {@Override/** * 获得页面的总数 */public int getCount() {return Integer.MAX_VALUE;}@Override/** * 获得相应位置上的view * container  view的容器,其实就是viewpager自身 * position 相应的位置 */public Object instantiateItem(ViewGroup container, int position) {System.out.println("instantiateItem  ::"+position);// 给 container 添加一个viewcontainer.addView(imageList.get(position%imageList.size()));//返回一个和该view相对的objectreturn imageList.get(position%imageList.size());}@Override/** * 判断 view和object的对应关系  */public boolean isViewFromObject(View view, Object object) {if(view == object){return true;}else{return false;}}@Override/** * 销毁对应位置上的object */public void destroyItem(ViewGroup container, int position, Object object) {System.out.println("destroyItem  ::"+position);container.removeView((View) object);object = null;}}//判断是否自动滚动private boolean isRunning = false;private Handler handler = new Handler(){public void handleMessage(android.os.Message msg) {//让viewPager 滑动到下一页viewPager.setCurrentItem(viewPager.getCurrentItem()+1);if(isRunning){handler.sendEmptyMessageDelayed(0, 2000);}};};protected void onDestroy() {isRunning = false;};


0 0
原创粉丝点击