xml文件 textview 用于显示图片的标题 viewpager 用于实现翻页效果

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center" >

        <TextView
            android:id="@+id/title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="#123456"
            android:textIsSelectable="true"
            android:textSize="18sp" />
    </LinearLayout>

    <android.support.v4.view.ViewPager
        android:id="@+id/vp"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >
    </android.support.v4.view.ViewPager>

</LinearLayout>

代码块 

  1 package com.xiang;
  2 
  3 import java.util.ArrayList;
  4 
  5 import java.util.concurrent.Executors;
  6 import java.util.concurrent.ScheduledExecutorService;
  7 import java.util.concurrent.TimeUnit;
  8 
  9 import android.os.Bundle;
 10 import android.os.Handler;
 11 import android.app.Activity;
 12 import android.support.v4.view.PagerAdapter;
 13 import android.support.v4.view.ViewPager;
 14 import android.support.v4.view.ViewPager.OnPageChangeListener;
 15 import android.view.Menu;
 16 import android.view.View;
 17 import android.widget.ImageView;
 18 import android.widget.TextView;
 19 
 20 public class AutoScrollActivity extends Activity {
 21     private ViewPager vp;
 22     private int imagsID[]={R.drawable.a,R.drawable.b,R.drawable.c,R.drawable.d};
 23     private String titles[]={"图片一","图片二","图片三","图片四"};
 24     private ArrayList<ImageView> images;
 25     private TextView title;
 26     private ViewPagerAdapter adapter;
 27     private int currentPosition=0;//当前页面位置
 28     private ScheduledExecutorService executor;
 29     @Override
 30     protected void onCreate(Bundle savedInstanceState) {
 31         super.onCreate(savedInstanceState);
 32         setContentView(R.layout.activity_auto_scroll);
 33         init();
 34     }
 35 
 36     private void init() {
 37         images=new ArrayList<ImageView>();
 38         for(int i=0;i<imagsID.length;i++)
 39         {
 40             ImageView imgview=new ImageView(this);
 41             imgview.setBackgroundResource(imagsID[i]);
 42             images.add(imgview);
 43         }
 44         title=(TextView)findViewById(R.id.title);
 45         title.setText(titles[0]);//默认显示第一张图片
 46         vp=(ViewPager)findViewById(R.id.vp);
 47         adapter=new ViewPagerAdapter();
 48         vp.setAdapter(adapter);
 49         vp.setOnPageChangeListener(listener);
 50     }
 51     OnPageChangeListener listener=new OnPageChangeListener() {
 52 
 53         @Override
 54         public void onPageSelected(int arg0) {
 55             // TODO Auto-generated method stub
 56             title.setText(titles[arg0]);
 57             currentPosition=arg0;
 58         }
 59 
 60         @Override
 61         public void onPageScrolled(int arg0, float arg1, int arg2) {
 62             // TODO Auto-generated method stub
 63 
 64         }
 65 
 66         @Override
 67         public void onPageScrollStateChanged(int arg0) {
 68             // TODO Auto-generated method stub
 69 
 70         }
 71     };
 72     class ViewPagerAdapter extends PagerAdapter
 73     {
 74 
 75         @Override
 76         public int getCount() {
 77             // TODO Auto-generated method stub
 78             return images.size();
 79         }
 80 
 81         @Override
 82         public boolean isViewFromObject(View arg0, Object arg1) {
 83             // TODO Auto-generated method stub
 84             return arg0==arg1;//判断两次图片是否一样
 85         }
 86         @Override
 87         public Object instantiateItem(View container, int position) {
 88             // TODO Auto-generated method stub
 89             ViewPager vp=(ViewPager) container;
 90             vp.addView(images.get(position));
 91             return images.get(position);
 92         }
 93         @Override
 94         public void destroyItem(View container, int position, Object object) {
 95             // TODO Auto-generated method stub
 96             ViewPager vp=(ViewPager) container;
 97             vp.removeView(images.get(position));
 98 
 99         }
100 
101     }
102     @Override
103     protected void onStart() {
104         // TODO Auto-generated method stub
105         /*
106          * 第一个参数:要自动执行的方法(任务)
107          * 第二个参数:延迟几秒启动
108          * 第三个参数:之后每个几秒 执行第一个参数的方法
109          * 第四个参数:时间单位 时分秒
110          */
111         super.onStart();
112         executor=Executors.newSingleThreadScheduledExecutor();
113         executor.scheduleAtFixedRate(new ViewPagerTask(), 2, 2, TimeUnit.SECONDS);
114 
115 
116     }
117     class ViewPagerTask implements Runnable
118     {
119 
120         @Override
121         public void run() {
122             // TODO Auto-generated method stub
123             currentPosition=(currentPosition+1)%images.size();
124             handler.obtainMessage().sendToTarget();//获取当前消息 发送给handler
125         }
126 
127     }
128     private Handler handler=new Handler()
129     {
130         public void handleMessage(android.os.Message msg) {
131 
132             vp.setCurrentItem(currentPosition);
133         };
134     };
135     @Override
136     public boolean onCreateOptionsMenu(Menu menu) {
137         // Inflate the menu; this adds items to the action bar if it is present.
138         getMenuInflater().inflate(R.menu.auto_scroll, menu);
139         return true;
140     }
141 
142 }

实现效果:图片每隔两秒自动翻页,同时更改图片的标题,到最后一面又返回到第一页显示。2013-10-17