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
怒发(髪)冲冠,凭栏处、潇潇雨歇。抬望眼、仰天长啸,壮怀激烈。三十功名尘与土,八千里路云和月。莫等闲、白了少年头,空悲切!
靖康耻,犹未雪。臣子恨,何时灭?驾长车踏破、贺兰山缺!壮志饥餐胡虏肉,笑谈渴饮匈奴血。待从头、收拾旧山河,朝天阙!
浙公网安备 33010602011771号