package com.teffy.viewpager; import java.util.ArrayList; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; import android.annotation.SuppressLint; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.support.v4.view.ViewPager; import android.support.v4.view.ViewPager.OnPageChangeListener; import android.view.View; import android.widget.ImageView; import android.widget.LinearLayout; public class MainActivity extends Activity { private ViewPager mViewPager; private ViewPagerAdapter adapter; String[] urls = new String[] { "http://img4.imgtn.bdimg.com/it/u=3741386655,1614062939&fm=21&gp=0.jpg", "http://img1.imgtn.bdimg.com/it/u=112648096,582309873&fm=23&gp=0.jpg", "http://photocdn.sohu.com/20120213/Img334596783.jpg", "http://pic11.nipic.com/20101210/2531170_111449179301_2.jpg", "http://www.foto8.net/files/201004/27/d272194910.jpg", "http://www.sootuu.com/photo/UploadFile/2006-4/20064304138937.jpg", "http://www.itxtbook.com/attachment/Day_081022/23_163307_e9b4513a7afee66.jpg", "http://img7.mypsd.com.cn/20120821/Mypsd_13920_201208211752500005B.jpg" }; private ArrayList<View> dots = new ArrayList<View>(); private int oldPosition = 0;//记录上一次点的位置 private int currentItem; //当前页面 private ScheduledExecutorService scheduledExecutorService; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mViewPager = (ViewPager) findViewById(R.id.vp_guanggao); mViewPager.setOnPageChangeListener(new OnPageChangeListener() { @Override public void onPageSelected(int position) { dots.get(oldPosition).setBackgroundResource(R.drawable.dxt_point_nomral); dots.get(position).setBackgroundResource(R.drawable.dxt_point_selected); oldPosition = position; currentItem = position; } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { } @Override public void onPageScrollStateChanged(int arg0) { } }); initDots(); adapter = new ViewPagerAdapter(this,urls); mViewPager.setAdapter(adapter); vpChangeTask(); } private void initDots() { LinearLayout ll_vp_point = (LinearLayout) findViewById(R.id.ll_vp_point); for (int i = 0; i <urls.length; i++) { ImageView iv_image = (ImageView) getLayoutInflater().inflate(R.layout.item_dots, null); if(i ==0){ iv_image.setBackgroundResource(R.drawable.dxt_point_selected); } iv_image.setTag(urls[i]); ll_vp_point.addView(iv_image); dots.add(iv_image); } } private void vpChangeTask() { scheduledExecutorService = Executors.newSingleThreadScheduledExecutor(); scheduledExecutorService.scheduleWithFixedDelay(new ViewPagerTask(), 2,3, TimeUnit.SECONDS); } // 切换图片 private class ViewPagerTask implements Runnable { @Override public void run() { currentItem = (currentItem + 1) %urls.length; mHandler.obtainMessage().sendToTarget(); } } @SuppressLint("HandlerLeak") private Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) { mViewPager.setCurrentItem(currentItem); } }; }
相关文章: