您的位置:首页 > 移动开发 > Android开发

Android ViewFlipper既可以滑动又可以点击

2015-01-19 13:48 323 查看
public class HeadActivity extends Activity implements android.view.GestureDetector.OnGestureListener{

private int[] imageID = {R.drawable.a, R.drawable.b, R.drawable.c}; //将要滚动的图片存到数组

private ViewFlipper viewFlipper = null;

private GestureDetector gestureDetector = null;

@Override

public void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.head_activity);

viewFlipper = (ViewFlipper) findViewById(R.id.viewflipper);

// 生成GestureDetector对象,用于检测手势事件

gestureDetector = new GestureDetector(this);

// 添加用于切换的图片

for (int i = 0; i < imageID.length; i++)

{

// 定义一个ImageView对象

ImageView image = new ImageView(this);

image.setImageResource(imageID[i]);

// 充满父控件

image.setScaleType(ImageView.ScaleType.FIT_XY);

// 添加到viewFlipper中

viewFlipper.addView(image, new LayoutParams(

LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));

}

}

public boolean onDown(MotionEvent arg0)

{

return false;

}

public boolean onFling(MotionEvent arg0, MotionEvent arg1, float arg2,

float arg3)

{

//对手指滑动的距离进行了计算,如果滑动距离大于120像素,就做切换动作,否则不做任何切换动作。

// 从左向右滑动

if (arg0.getX() - arg1.getX() > 120)

{

// 添加动画

this.viewFlipper.setInAnimation(AnimationUtils.loadAnimation(this,

R.anim.push_left_in));

this.viewFlipper.setOutAnimation(AnimationUtils.loadAnimation(this,

R.anim.push_left_out));

this.viewFlipper.showNext();

return true;

}// 从右向左滑动

else if (arg0.getX() - arg1.getX() < -120)

{

this.viewFlipper.setInAnimation(AnimationUtils.loadAnimation(this,

R.anim.push_right_in));

this.viewFlipper.setOutAnimation(AnimationUtils.loadAnimation(this,

R.anim.push_right_out));

this.viewFlipper.showPrevious();

return true;

}

return true;

}

public void onLongPress(MotionEvent e)

{}

public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,

float distanceY)

{

return false;

}

public void onShowPress(MotionEvent e)

{}

public boolean onSingleTapUp(MotionEvent e) //此方法用于表示用户只点击一下屏幕的效果

{

viewFlipper = (ViewFlipper) findViewById(R.id.viewflipper);

for (int i = 0; i < imageID.length; i++)

{

// 定义一个ImageView对象

ImageView image = new ImageView(this);

image.setImageResource(imageID[i]);

// 充满父控件

image.setScaleType(ImageView.ScaleType.FIT_XY);

// 添加到viewFlipper中

viewFlipper.addView(image, new LayoutParams(

LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));

//由于ViewFlipper是循环滚动的,所以设置其对其索引的取余操作

if(viewFlipper.getDisplayedChild()%3==0)

{

Intent intent=new Intent("com.xiaosi.viewflipper.a1activity");

startActivity(intent);

return true;

}

if(viewFlipper.getDisplayedChild()%3==1)

{

Intent intent=new Intent("com.xiaosi.viewflipper.b1activity");

startActivity(intent);

return true;

}

if(viewFlipper.getDisplayedChild()%3==2)

{

Intent intent=new Intent("com.xiaosi.viewflipper.c1acticity");

startActivity(intent);

return true;

}

}

return false;

}

@Override

public boolean onTouchEvent(MotionEvent event)

{

return this.gestureDetector.onTouchEvent(event);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: