ViewPager

来源:互联网 发布:剑三dbm数据怎么删除 编辑:程序博客网 时间:2024/06/11 04:29
package com.example.viewpage;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.SystemClock;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
public class MainActivity extends Activity {
 private ViewPager vp;
 private LinearLayout ll;
 private List<ImageView> imagelist;
 private List<View> dalist;
 private int oldpro = 0;
 private int count = 0;
 private Handler handler = new Handler() {
  public void handleMessage(android.os.Message msg) {
   vp.setCurrentItem(count);
  };
 };
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  initView();
  initdata();
  setViewPagerAdapter();
  autoplay();
 }
 public void initView() {
  vp = (ViewPager) findViewById(R.id.vp);
  ll = (LinearLayout) findViewById(R.id.ll);
 }
 public void initdata() {
  imagelist = new ArrayList<ImageView>();
  dalist = new ArrayList<View>();
  ImageView imageView1 = new ImageView(this);
  imageView1.setBackgroundResource(R.drawable.i);
  ImageView imageView2 = new ImageView(this);
  imageView2.setBackgroundResource(R.drawable.n);
  ImageView imageView3 = new ImageView(this);
  imageView3.setBackgroundResource(R.drawable.o);
  ImageView imageView4 = new ImageView(this);
  imageView4.setBackgroundResource(R.drawable.p);
  imagelist.add(imageView1);
  imagelist.add(imageView2);
  imagelist.add(imageView3);
  imagelist.add(imageView4);
  for (int i = 0; i < imagelist.size(); i++) {
   View view = new View(this);
   view.setLayoutParams(new LinearLayout.LayoutParams(50, 50));
   dalist.add(view);
   if (i == 0) {
    dalist.get(i).setBackgroundResource(
      R.drawable.btn_radio_on_holo_dark);
   } else {
    dalist.get(i).setBackgroundResource(
      R.drawable.btn_radio_on_disabled_holo_dark);
   }
   ll.addView(dalist.get(i));
  }
 }
 public void setViewPagerAdapter() {
  vp.setAdapter(new MyPagerAdapter());
  vp.setOnPageChangeListener(new OnPageChangeListener() {
   @Override
   public void onPageSelected(int pro) {
    // TODO Auto-generated method stub
    dalist.get(pro % imagelist.size()).setBackgroundResource(
      R.drawable.btn_radio_on_holo_dark);
    dalist.get(oldpro % imagelist.size()).setBackgroundResource(
      R.drawable.btn_radio_on_disabled_holo_dark);
    oldpro = pro;
   }
   @Override
   public void onPageScrolled(int arg0, float arg1, int arg2) {
    // TODO Auto-generated method stub
   }
   @Override
   public void onPageScrollStateChanged(int arg0) {
    // TODO Auto-generated method stub
   }
  });
 }
 public class MyPagerAdapter extends PagerAdapter {
  @Override
  public int getCount() {
   // TODO Auto-generated method stub
   return Integer.MAX_VALUE;
  }
  @Override
  public boolean isViewFromObject(View arg0, Object arg1) {
   // TODO Auto-generated method stub
   return arg0 == arg1;
  }
  @Override
  public void destroyItem(ViewGroup container, int position, Object object) {
   // TODO Auto-generated method stub
   // super.destroyItem(container, position, object);
  }
  @Override
  public Object instantiateItem(ViewGroup container, int position) {
   // TODO Auto-generated method stub
   ImageView imageview = imagelist.get(position % imagelist.size());
   ViewPager pager = (ViewPager) imageview.getParent();
   if (pager != null) {
    pager.removeView(imageview);
   }
   container.addView(imageview);
   return imageview;
  }
 }
 public void autoplay() {
  new Thread() {
   public void run() {
    while (true) {
     try {
      SystemClock.sleep(3000);
      count++;
      handler.sendEmptyMessage(0);
     } catch (Exception e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
     }
    }
   };
  }.start();
 }
}
0 0
原创粉丝点击