Android ViewPager实现图片循环切换

 import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.ImageView;
public class MainActivity extends Activity {
 // MyViewPagerAdapter adapter;
 private ViewPager viewPager;
 private List<ImageView> listviews;
 private int[] pics = { R.drawable.aa, R.drawable.bb, R.drawable.cc };
 private Handler handler = new Handler() {
  public void handleMessage(android.os.Message msg) {
   viewPager.setCurrentItem(viewPager.getCurrentItem() + 1);
   handler.sendEmptyMessageDelayed(0, 1000);
  };
 };
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  viewPager = (ViewPager) findViewById(R.id.viewpager_activity);
  listviews = new ArrayList<ImageView>();
  for (int i = 0; i < pics.length; i++) {
   ImageView imageView = new ImageView(MainActivity.this);
   ViewGroup.LayoutParams viewPagerImageViewParams = new ViewGroup.LayoutParams(
     ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT);
   imageView.setLayoutParams(viewPagerImageViewParams);
   imageView.setScaleType(ImageView.ScaleType.FIT_XY);
   imageView.setImageResource(pics[i]);
   listviews.add(imageView);
  }
  viewPager.setAdapter(new ViewPagerAdapter());
  viewPager.setCurrentItem(481);
  handler.sendEmptyMessageDelayed(0, 1000);// 间隔一秒切换一次
 }
 class ViewPagerAdapter extends PagerAdapter {
  @Override
  public Object instantiateItem(ViewGroup container, int position) {

   if (listviews.get(position % listviews.size()).getParent() != null) {
    container
      .removeView(listviews.get(position % listviews.size()));
   }
    container.addView(listviews.get(position % listviews.size()), 0);
   return listviews.get(position % listviews.size());
  }
  @Override
  public int getCount() {
   return Integer.MAX_VALUE;
  }
  @Override
  public boolean isViewFromObject(View view, Object o) {
   return view == o;
  }
  @Override
  public void destroyItem(ViewGroup container, int position, Object object) {
  }// 这个方法必须要重写,不然会报错
 }
}

转载于:https://my.oschina.net/u/2532425/blog/534650

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值