ViewPager网络图片无限轮播

  1 package com.bwei.admin.viewpagerdemo;
  2
  3 import android.os.Bundle;
  4 import android.os.Handler;
  5 import android.os.Message;
  6 import android.support.v4.view.PagerAdapter;
  7 import android.support.v4.view.ViewPager;
  8 import android.support.v7.app.AppCompatActivity;
  9 import android.view.View;
 10 import android.view.ViewGroup;
 11 import android.widget.ImageView;
 12
 13 import com.bumptech.glide.Glide;
 14
 15 public class MainActivity extends AppCompatActivity implements View.OnClickListener{
 16
 17     private ViewPager mViewPager; 18  25     private String [] images={"http://l2.51fanli.net//tuan//images//1//5806eac956808.jpg",
 26             "http://l2.51fanli.net//tuan//images//b//580991bb30560.jpg",
 27             "http://l0.51fanli.net//tuan//images//b//58115f2593dc3.jpg",
 28             "http://l2.51fanli.net//tuan//images//0//57923840b054d.jpg",
 29             "http://l2.51fanli.net//tuan//images//e//58101e11ab164.jpg"};
 30     private ImageView[] mImageViews;
 31     private int index = 0;
 32     private Handler handler = new Handler(){
 33         @Override
 34         public void handleMessage(Message msg) {
 35             index = index%images.length;
 36             mViewPager.setCurrentItem(index,false);
 37             index++;
 38             index = index%images.length;
 39             //handler.sendEmptyMessageDelayed(index,2000);
 40             send();
 41
 42         }
 43     };
 44     @Override
 45     protected void onCreate(Bundle savedInstanceState) {
 46         super.onCreate(savedInstanceState);
 47         setContentView(R.layout.activity_main);
 48
 49         initView();
 50         mImageViews = new ImageView[5];
 51         mImageViews[0] = (ImageView) findViewById(R.id.point1);
 52         mImageViews[1] = (ImageView) findViewById(R.id.point2);
 53         mImageViews[2] = (ImageView) findViewById(R.id.point3);
 54         mImageViews[3] = (ImageView) findViewById(R.id.point4);
 55         mImageViews[4] = (ImageView) findViewById(R.id.point5);
 56
 57         for (ImageView images: mImageViews) {
 58             images.setOnClickListener(this);
 59         }
 60         updateView(index);
 61         //handler.sendEmptyMessageDelayed(index,2000);
 62         send();
 63     }
 64
 65     public void send(){
 66         new Thread(){
 67             @Override
 68             public void run() {
 69                 handler.sendEmptyMessageDelayed(index,2000);
 70             }
 71         }.start();
 72     }
 73
 74     private void initView() {
 75         mViewPager = (ViewPager) findViewById(R.id.viewPager);
 76         MyPageAdapter adapter = new MyPageAdapter();
 77         mViewPager.setAdapter(adapter);
 78
 79
 80         mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
 81             @Override
 82             public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
 83
 84             }
 85
 86             @Override
 87             public void onPageSelected(int position) {
 88                     updateView(position);
 89             }
 90
 91             @Override
 92             public void onPageScrollStateChanged(int state) {
 93
 94             }
 95         });
 96     }
 97
 98     //图片切换更新
 99     private void updateView(int position) {
100         //首先初始化成未选中的样子
101         for (ImageView images: mImageViews) {
102             images.setImageResource(R.drawable.nor);
103         }
104         //将选中的positon的更改为选中的样子
105         mImageViews[position].setImageResource(R.drawable.yer);
106     }
107
108     @Override
109     public void onClick(View v) {
110         handler.removeCallbacksAndMessages(null);
111         int index1 = Integer.parseInt(v.getTag().toString());
112         mViewPager.setCurrentItem(index1,false);
113         index = index1+1;
114         send();
115     }
116
117     class MyPageAdapter extends PagerAdapter{
118
119         @Override
120         public int getCount() {
121             return images.length;
122         }
123
124         @Override
125         public boolean isViewFromObject(View view, Object object) {
126             return view==object;
127         }
128
129         @Override
130         public Object instantiateItem(ViewGroup container, int position) {
131             ImageView imageView = new ImageView(MainActivity.this);
132            // imageView.setImageResource(imageId[position%imageId.length]);
133             Glide.with(MainActivity.this).load(images[position]).placeholder(R.drawable.yer).into(imageView);
134             container.addView(imageView);
135             return imageView;
136         }
137
138         @Override
139         public void destroyItem(ViewGroup container, int position, Object object) {
140             //super.destroyItem(container, position, object);
141             container.removeView((View)object);
142         }
143     }
144
145 }

http://blog.csdn.net/ss1168805219/article/details/52282750(纤细参考)

时间: 2024-10-11 16:47:41

ViewPager网络图片无限轮播的相关文章

ViewPager实现无限轮播踩坑记

最近笔者想通过ViewPager来实现一个广告Banner,并实现无限轮播的效果,但是在这个过程中踩了不少的坑,听我慢慢道来.如果大家有遇到和我一样的情况,可以参考我的解决方法,没有那就更好,如果针对我的解决方法,有啥更好的方案,欢迎和我分享 使用ViewPager实现无限轮播代码 MainActivity代码 public class MainActivity extends AppCompatActivity { private ViewPager mViewPager; private T

图片无限轮播由于ViewPager的预加载机制所导致的问题

分类和回归是分析预测中最古老的话题.支持向量机.逻辑回归.朴素贝叶斯算法.神经网络和深度学习都属于分类和回归技术. 本章将重点关注决策树算法和它的扩展随机决策森林算法,这两个算法灵活且应用广泛,即可用于分类问题,也可用于回归问题.更令人兴奋的是,它们可以帮助我们预测未来,至少是预测我们尚不肯定的事情.比如,根据线上行为来预测购买汽车的概率,根据用词预测邮件是否是垃圾邮件,根据地理位置和土壤的化学成分预测哪块耕地的产量可能更高. 总体实现无限轮播的思想,其实和网上大部分的思路都是相同的,设置一个I

iOS:实现图片的无限轮播(二)---之使用第三方库SDCycleScrollView

下载链接:github不断更新地址:https://github.com/gsdios/SDCycleScrollView 使用原理:采用UICollectionView的重用机制和循环滚动的方式实现图片的无限轮播,播放非常顺畅,解决了UISCrollView使用时从最后一张跳到第一张时的生硬状态. 主要类截图: SDCollectionViewCell:用来重用的item,即显示图片的视图: SDCycleScrollView: 对外提供的一个创建轮播器的接口类,使用者就是直接使用这个类来实现

新版无限轮播视图,2个imageView完成(不依赖任何三方库)

笔者最新改写的无限轮播视图,完全不依赖任何三方库,2个imageView实现无限轮播. 特点: 1.支持图片缓存到本地,亦支持一键清除缓存. 2.超级轻量,没有任何第三方框架参合,占用内存极小 3.高度自定义,支持修改pageControll的显示图片及显示位置 4.图片展示模式多样性,支持轮播展示与渐入渐出模式展示 5.支持自动滚动 6.创建方式多样,支持代码及storyboard创建 7.支持显示图片简介,具体见GitHub效果图 代码实现: .h // // WYScrollView.h

Android之仿京东淘宝的自动无限轮播控件

在App的开发中,很多的时候都需要实现类似京东淘宝一样的自动无限轮播的广告栏,所以就自己写了一个,下面是我自定义控件的思路和过程. 一.自定义控件属性 新建自定义控件SliderLayout继承于RelativeLayout,首先要考虑的就是自定义的控件需要扩展那些属性,把这些属性列出来.在这里是要实现类似于京东淘宝的无限轮播广告栏,那马首先想到的就是轮播的时长.轮播指示器的样式等等.我在这里列举了一些并且结合到了代码中. 1.扩展属性 (1)是否开启自动轮播的功能. (2)指示器的图形样式,一

iOS无限轮播视图

以前曾经写过一个用UICollectionView的无限轮播视图,但是写法不是很成熟,设置模型上限为数组的count * 50这样做的话会滚动到最后一个模型的时候会crash掉,今天理了下思路,写了一个基于UISCrollView的轮播视图,虽然比较简陋,但是实现了基本功能.没有怎么加入注释,请谅解效果图如下: 有兴趣的可以去参考一些代码,附上GitHub地址:https://github.com/zimou47/UnlimitedScrollView 如果为您带来了帮助,请点一颗星O(∩_∩)

iOS开发UI篇—无限轮播(循环利用)

一.无限轮播  1.简单说明 在开发中常需要对广告或者是一些图片进行自动的轮播,也就是所谓的无限滚动. 在开发的时候,我们通常的做法是使用一个UIScrollView,在UIScrollView上面添加多个imageView,然后设置imageView的图片,和scrollView的滚动范围. 以前的做法: 一般而言,轮播的广告或者是图片数量都不会太多(3~5张).所以,并不会太多的去考虑性能问题.但是如果图片过多(比如有16张图片,就需要创建16个imageView),那么就不得不考虑性能问题

无限轮播图的制作

url:http://zjingwen.github.io/SetTimeOutGoBlog/webdemo/huanyouji/index.html (如果打开过慢,或者打不开,原因你懂得.) 一.思路 1.所有滑动效果的demo都是通过控制css里的left值,来控制滑动效果的. 2.需要两个块,一个div块,一个ui.div块的position是relative,ui块的position是absolute.这样ui块的left就可以根据外层的div来控制.div的overflow是hidd

iOS开发UI篇—无限轮播(功能完善)

iOS开发UI篇—无限轮播(功能完善) 一.自动滚动 添加并设置一个定时器,每个2.0秒,就跳转到下一条. 获取当前正在展示的位置. 1 [self addNSTimer]; 2 } 3 4 -(void)addNSTimer 5 { 6 // NSTimer timerWithTimeInterval:<#(NSTimeInterval)#> target:<#(id)#> selector:<#(SEL)#> userInfo:<#(id)#> repe