ImageSwitcher:

package com.example.ImageSwitcher;
import android.app.Activity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.ImageSwitcher;
import android.widget.ImageView;
import android.widget.Toast;
import android.widget.ViewSwitcher.ViewFactory;
public class MainActivity extends Activity implements ViewFactory,OnTouchListener {
private ImageSwitcher imageSwitcher;
private int index;//保存当前所设置图片数组的索引
//定义一个图片数组
private int[] imageArray= {R.drawable.a,
R.drawable.b,R.drawable.c,
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageSwitcher=(ImageSwitcher) findViewById(R.id.imageSwitcher);
imageSwitcher.setFactory(this);//给imageSwitcher设置工厂
imageSwitcher.setOnTouchListener(this);//imageSwitcher设置监听事件
}
//重写ViewFactory的makeView() 方法
@Override
public View makeView() {
// TODO Auto-generated method stub
ImageView iv=new ImageView(this);
iv.setImageResource(imageArray[0]);
return iv;//注意返回值一张图片
}
float startx,endx;//记录开始移动的位置和结束移动的位置
///其实重写Activity的onTouch方法也可以!!!
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
int action=event.getAction();//获取当前的事件动作
//判断是否开启滑动屏幕的开始点
if(action==MotionEvent.ACTION_DOWN) {
startx=event.getX();
return true;
}
//判断是否开启滑动屏幕的结束点
if(action==MotionEvent.ACTION_UP) {
endx=event.getX();
//判断滑动的方向
//右往滑动代表下一张,从左往右划代表上一张
if(startx-endx>20) {
Toast.makeText(getApplicationContext(), index+"",1000).show();
index=index+1<imageArray.length?++index:0;//下一张.数组++
imageSwitcher.setImageResource(imageArray[index]);
}else if(startx-endx<20) {
Toast.makeText(getApplicationContext(), index,1000).show();
index=index-1<=0?--index:imageArray.length-1;//上一张.数组++
imageSwitcher.setImageResource(imageArray[index]);
}
return true;
}
return true;
}
}