这个类就是实现这种效果的。
把图片替换一下就行了public class FirstStartPage extends RelativeLayout {

private Context context;
private Activity activity;
private ViewFlipper imgshow;
private GridView gridview;
private GridViewAdapter gridViewAdapter;
int currentIndex_;


private OnFlingListen onFlingListen;

private GestureDetector detector; public FirstStartPage(Context context) {
super(context);
this.context=context;
this.activity=(Activity)context;
inflate(context, R.layout.startpage, this);
imgshow=(ViewFlipper) findViewById(R.id.imgshow);
gridview=(GridView) findViewById(R.id.gridview);

onFlingListen=new OnFlingListen();
detector = new GestureDetector(onFlingListen);
init();
} private void init() {
setImgShow();
setGridView();
} private void setImgShow() {

for(int i=0;i<Constant.StartImgNum;i++){
ImageView img=new ImageView(context);
String imgname="img"+i;
int imgId = getImgId(imgname);
img.setBackgroundResource(imgId);
imgshow.addView(img, i);
}
imgshow.setOnTouchListener(onFlingListen);
imgshow.setLongClickable(true);// 这一句必须添加,否则手势监听无法触发
}

private void setGridView() {

gridViewAdapter = new GridViewAdapter(context);

gridview.setAdapter(gridViewAdapter);
LayoutParams lpgridview=new LayoutParams(300,-2);//这里的宽度自己设置
lpgridview.setMargins(0, 0, 0, 20);
lpgridview.addRule(RelativeLayout.CENTER_HORIZONTAL);
lpgridview.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
gridview.setLayoutParams(lpgridview);

Bitmap radio = BitmapFactory.decodeResource(this.getResources(), R.drawable.radio);
Bitmap radio_sel = BitmapFactory.decodeResource(this.getResources(), R.drawable.radio_sel);

int width = radio.getWidth();
gridview.setColumnWidth(width);
//水平间隔通过屏幕分辩率来计算
gridview.setNumColumns(Constant.StartImgNum);//设置列数
gridview.setStretchMode(GridView.STRETCH_COLUMN_WIDTH);

}
class OnFlingListen implements OnTouchListener,OnGestureListener{ @Override
public boolean onDown(MotionEvent e) {
// TODO Auto-generated method stub
return false;
} @Override
public void onShowPress(MotionEvent e) {
// TODO Auto-generated method stub

} @Override
public boolean onSingleTapUp(MotionEvent e) {
// TODO Auto-generated method stub
return false;
} @Override
public boolean onScroll(MotionEvent e1, MotionEvent e2,
float distanceX, float distanceY) {
// TODO Auto-generated method stub
return false;
} @Override
public void onLongPress(MotionEvent e) {
// TODO Auto-generated method stub

} @Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float x,
float y) {
if(e2.getX()>e1.getX()){
// System.out.println("左向右");
if(imgshow.getDisplayedChild()!=0){
imgshow.setInAnimation(context, R.anim.in_left_right);
imgshow.setOutAnimation(context, R.anim.out_left_right);
imgshow.showPrevious();
gridViewAdapter.currentIndex--;
//改变GridView显示
gridViewAdapter.notifyDataSetInvalidated();
}
}else if(e2.getX()<e1.getX()){
if(imgshow.getDisplayedChild()!=imgshow.getChildCount()-1){
imgshow.setInAnimation(context, R.anim.in_right_left);
imgshow.setOutAnimation(context, R.anim.out_right_left);
imgshow.showNext();
gridViewAdapter.currentIndex++;
//改变GridView显示
gridViewAdapter.notifyDataSetInvalidated();
}else{
//跳转到下一个activity
startToMainActivity();
}
}else{
// System.out.println("没移动");
}
return false;
} @Override
public boolean onTouch(View v, MotionEvent event) {
detector.onTouchEvent(event);
return false;
}

}

private void startToMainActivity(){
Intent i=new Intent();
i.setClass(context,MainActivity.class);
context.startActivity(i);
activity.finish();
}

private int getImgId(String imgname) {

Class<drawable> draw = R.drawable.class;
try {
Field field = draw.getDeclaredField(imgname);
int imgid = field.getInt(imgname);
return imgid;
} catch (Exception e) {
Log_E("找不到该图片:"+imgname);
return getImgId("img0");
}
}

void Log_E(String log){
Log.e("TEST", log);
}
}