网络获取图片数据后 利用viewpager实现弹簧效果

继续整理笔记,不知道在这个公司还能带多久,也不知道新工作什么时候到来。有点衰...

这是一个类似iphone上一个弹簧效果,纵向的弹簧效果比较常见,一般是利用listview来实现。当策划提出这个左右弹簧效果的时候,让我费了好几天的时间来搜集和改代码。当然最后的结果不是很随人愿,但是效果还是出来了。

代码如下

首先在viewpager初始数据的时候,viewlist的首尾分别加上一个空白的view

private void findView()
 {

  viewList = new ArrayList<View>();
  ImageView v1 = new ImageView(ViewPagerActivity.this);
  v1.setBackgroundColor(Color.WHITE);
  viewList.add(v1);
  
  for (int i = 0; i < imageUrls.length; i++)
  {
   final ImageView iv = new ImageView(ViewPagerActivity.this);
   iv.setOnClickListener(this);
   iv.setScaleType(ScaleType.FIT_XY);
   try
   {
    final URL url = new URL("http://" + PostHttp.connIp
      + "/IDOC/service/file/" + imageUrls[i][1] + "/"
      + System.currentTimeMillis() + ".jpeg");
    final int index = i;

    Bitmap mBitmap = imageloader.loadImageFromUrl(url.toString());
    Bitmap newBitmap = ZoomBitmap(mBitmap,
      WelcomeActivity.screenWidth, WelcomeActivity.ratio);

   
    iv.setImageBitmap(newBitmap);
    iv.setTag(index);
    viewList.add(iv);

   } catch (MalformedURLException e)
   {
    e.printStackTrace();
   }
  }
  ImageView v2 = new ImageView(ViewPagerActivity.this);
  v2.setBackgroundColor(Color.WHITE);
  viewList.add(v2);
 }

其次,这里才是重点:

为viewpager添加setOnPageChangeListener监听,重写onPageSelected方法。

 @Override
   public void onPageSelected(int arg0)
   {
    if(arg0 == 0){
     pager.setCurrentItem(1);
    }
    if(arg0 == adapter.getCount()-1){
     pager.setCurrentItem(adapter.getCount()-2);
    }
   }

 

经过以上两步,简单的左右弹簧效果就实现了。

欢迎大牛提出更“科学”的方法。

TIP:给自己的记录

iv.setTag(index);给每个图片添加一个tag,在对图片添加单击事件后,可以根据tag对图片进行辨别。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值