ViewPager的图片轮播
1 //获得文件 2 String se = (String) msg.obj; 3 //gson对象 4 Gson gson = new Gson(); 5 //解析json串 因为要解析的json是一个集合所以要用到TypeToken<List<Src>>() {}.getType())的方法 6 List<Src> json = gson.fromJson(se, new TypeToken<List<Src>>() { 7 }.getType()); 8 9 //准备一个集合接收图片 10 final List<View> list = new ArrayList<View>(); 11 for (int i = 0; i < json.size(); i++) { 12 13 ImageView img = new ImageView(MainActivity.this); 14 15 img.setScaleType(ScaleType.FIT_XY); 16 //使用BitmapUtils 17 BitmapUtils utils = new BitmapUtils(MainActivity.this); 18 //把图片添加到img中去 19 utils.display(img, "http://172.17.29.120/localuser/ljy/jc/" 20 + json.get(i).getSrc()); 21 //把所有的img图片添加到集合中去 22 list.add(img); 23 } 24 //创建一个viewpager适配器 25 viewpager.setAdapter(new PagerAdapter() { 26 27 @Override 28 public boolean isViewFromObject(View arg0, Object arg1) { 29 // TODO Auto-generated method stub 30 return arg0 == arg1; 31 } 32 33 @Override 34 public int getCount() { 35 // TODO Auto-generated method stub 36 //集合的长度 37 return list.size(); 38 } 39 40 public void destroyItem(android.view.ViewGroup container, 41 int position, Object object) { 42 //移除掉图片 43 container.removeView((View) object); 44 }; 45 46 public Object instantiateItem( 47 android.view.ViewGroup container, int position) { 48 //添加图片 49 container.addView(list.get(position)); 50 //返回要添加第几个图片 51 return list.get(position); 52 53 }; 54 55 }); 56 57 // 图片自动循环 58 Timer timer = new Timer(); 59 timer.schedule(new TimerTask() { 60 61 @Override 62 public void run() { 63 // TODO Auto-generated method stub 64 //获取现在展示的是第几个图片的下标并进行加1 65 count = viewpager.getCurrentItem() + 1; 66 //判断图片是否到了最后一个 67 //如果到了最后一个把他的下标该成第一个 68 if (count == 5) { 69 count = 0; 70 } 71 //把count返回到主线程中 72 hand.sendMessage(hand.obtainMessage(8, count)); 73 74 } 75 }, 2000, 2000);//代表一个图片展示两秒 76 } 77 78 Handler hand = new Handler() { 79 public void handleMessage(android.os.Message msg) { 80 if (msg.what == 8) { 81 //在主线程中获取返回的值 82 int i = (Integer) msg.obj; 83 //根据获取的返回值来设置要显示的是第几个图片 84 viewpager.setCurrentItem(i); 85 } 86 87