ViewPager制作循环滚动图片
来源:互联网 发布:上网记录监控软件 编辑:程序博客网 时间:2024/05/14 06:05
原理:
核心代码如下:
private int[] hotIds = new int[] { R.drawable.hot1, R.drawable.hot2,R.drawable.hot3, R.drawable.hot4 };private List<View> pagerList;private LinearLayout pagerPoints;private void setViewPager() {pagerList = new ArrayList<View>();for (int i = 0; i < hotIds.length + 2; i++) {ImageView iv = new ImageView(SecondActivity.this);if (i == 0) {iv.setImageResource(hotIds[hotIds.length - 1]);} else if (i == hotIds.length + 1) {iv.setImageResource(hotIds[0]);} else {iv.setImageResource(hotIds[i - 1]);}pagerList.add(iv);}pagerPoints = (LinearLayout)this.findViewById(R.id.second_pager_point);for (int i = 0; i < hotIds.length; i++) {ImageView iv = new ImageView(SecondActivity.this);iv.setImageResource(R.drawable.selector_pager_point);pagerPoints.addView(iv);}ImageView firstPoint = (ImageView)pagerPoints.getChildAt(0);firstPoint.setSelected(true);mViewPager = (ViewPager) this.findViewById(R.id.second_scroll_picture);mViewPager.setAdapter(new PagerAdapter() {@Overridepublic boolean isViewFromObject(View arg0, Object arg1) {// TODO Auto-generated method stubreturn arg0 == arg1;}@Overridepublic int getCount() {// TODO Auto-generated method stubreturn pagerList.size();}@Overridepublic Object instantiateItem(ViewGroup container, int position) {((ViewPager) container).addView(pagerList.get(position));return pagerList.get(position);}@Overridepublic void destroyItem(ViewGroup container, int position,Object object) {((ViewPager) container).removeView(pagerList.get(position));}});mViewPager.setCurrentItem(1); // 设置当前pager为1,即开始时就可以向右活动mViewPager.setOnPageChangeListener(new OnPageChangeListener() {@Overridepublic void onPageSelected(int position) {// TODO Auto-generated method stub// System.out.println("--onPageSelected--" + position);for (int i = 0; i < pagerPoints.getChildCount(); i++) {pagerPoints.getChildAt(i).setSelected(false);}//判断是否为最前面的图片,或最后没的图片if (position == 0) {//pager划到第一页时跳到末尾页mViewPager.setCurrentItem(pagerList.size()-2, false);//设置所在图片的 点pagerPoints.getChildAt( pagerPoints.getChildCount()-1).setSelected(true);} else if (position == pagerList.size()-1) {//pager划到最后一页时跳到首页mViewPager.setCurrentItem(1, false);//设置所在图片的 点pagerPoints.getChildAt(0).setSelected(true);}else{//设置所在图片的 点pagerPoints.getChildAt(position-1).setSelected(true);}}@Overridepublic void onPageScrolled(int arg0, float arg1, int arg2) {}@Overridepublic void onPageScrollStateChanged(int position) {}});}
- ViewPager制作循环滚动图片
- ViewPager实现图片循环滚动
- 利用ViewPager实现图片循环滚动
- 利用ViewPager实现图片循环滚动
- 利用ViewPager实现图片循环滚动
- ViewPager 循环滚动
- ViewPager 的循环滚动
- ViewPager实现循环滚动
- 使用ViewPager实现循环滚动播放图片广告
- AndroidImageSlider 滚动图片 viewpager
- ViewPager定时左右循环滚动
- AutoScrollViewPager 自动循环滚动viewpager
- ViewPager实现无线循环滚动
- viewPager+fragment实现循环滚动
- Android无限循环滚动ViewPager
- JQUERY制作图片滚动
- 循环滚动的图片
- 无缝循环滚动图片
- 如何使我们的COM对象可以被脚本语言调用
- 【2014校招】Microsoft Summer Intern 笔试
- >/dev/null 2>&1 详解
- 如何将磁盘从GPT格式转换成MBR
- Apple iPad
- ViewPager制作循环滚动图片
- Hibernate 的 select语句
- 简记2013 ACM/ICPC Asia Regional Changsha Online
- 【百度地图API】如何将Google的经纬度批量转换为百度经纬度
- 安装SDK2003并且编译Ghost
- 九度OJ 9月赛第二场 题目1542:黑白迷阵 (状态压缩DP)
- HashMap存储分析
- STM32仿真停在0x08001460 BEAB BKPT 0xAB这个_sys_open代码下
- DML误操作基于时间点的不完全恢复