首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

ViewFlipper组合手势OnGestureListener制作的滑动切换效果

2012-07-15 
ViewFlipper结合手势OnGestureListener制作的滑动切换效果文章分类:移动开发Java代码??public?interface?O

ViewFlipper结合手势OnGestureListener制作的滑动切换效果


文章分类:移动开发Java代码??ViewFlipper组合手势OnGestureListener制作的滑动切换效果
  1. public?interface?OnGestureListener?{??
  2. ????????????????//?Touch?down时触发,?e为down时的MotionEvent??
  3. ????????????????boolean?onDown(MotionEvent?e);??
  4. ????????????????//?在Touch?down之后一定时间(115ms)触发,e为down时的MotionEvent??
  5. ????????????????void?onShowPress(MotionEvent?e);??
  6. ????????????????//?Touch?up时触发,e为up时的MotionEvent??
  7. ????????????????boolean?onSingleTapUp(MotionEvent?e);??
  8. ????????????????//?滑动时触发,e1为down时的MotionEvent,e2为move时的MotionEvent??
  9. ????????????????boolean?onScroll(MotionEvent?e1,?MotionEvent?e2,?float?distanceX,?float?distanceY);??
  10. ????????????????//?在Touch?down之后一定时间(500ms)触发,e为down时的MotionEvent??
  11. ????????????????void?onLongPress(MotionEvent?e);??
  12. ????????????????//?滑动一段距离,up时触发,e1为down时的MotionEvent,e2为up时的MotionEvent??
  13. ????????????????boolean?onFling(MotionEvent?e1,?MotionEvent?e2,?float?velocityX,?float?velocityY);??
  14. }??
  15. ???
  16. public?interface?OnDoubleTapListener?{??
  17. ????????????????//?完成一次单击,并确定没有二击事件后触发(300ms),e为down时的MotionEvent??
  18. ????????????????boolean?onSingleTapConfirmed(MotionEvent?e);??
  19. ????????????????//?第二次单击down时触发,e为第一次down时的MotionEvent??
  20. ????????????????boolean?onDoubleTap(MotionEvent?e);??
  21. ????????????????//?第二次单击down,move和up时都触发,e为不同时机下的MotionEvent??
  22. ????????????????boolean?onDoubleTapEvent(MotionEvent?e);??
  23. }??


实例:?
Java代码??ViewFlipper组合手势OnGestureListener制作的滑动切换效果
  1. import?android.app.Activity;??
  2. import?android.os.Bundle;??
  3. import?android.view.GestureDetector;??
  4. import?android.view.MotionEvent;??
  5. import?android.view.View;??
  6. import?android.widget.Button;??
  7. import?android.widget.ViewFlipper;??
  8. ??
  9. public?class?FlingSlideActivity?extends?Activity?implements?GestureDetector.OnGestureListener,GestureDetector.OnDoubleTapListener{??
  10. ????private?ViewFlipper?mViewFlipper;??
  11. ????private?GestureDetector?mGestureDetector;??
  12. ????/**?Called?when?the?activity?is?first?created.?*/??
  13. ????@Override??
  14. ????public?void?onCreate(Bundle?savedInstanceState)?{??
  15. ????????super.onCreate(savedInstanceState);??
  16. ????????setContentView(R.layout.main);??
  17. ????????mViewFlipper?=?(ViewFlipper)?findViewById(R.id.flipper);??
  18. ????????Button?button1?=?(Button)?findViewById(R.id.Button1);?????
  19. ????????button1.setOnClickListener(new?View.OnClickListener()?{?????
  20. ????????????public?void?onClick(View?view)?{??
  21. ????????????????mViewFlipper.showNext();?????
  22. ????????????}?????
  23. ????????});??
  24. ????????Button?button2?=?(Button)?findViewById(R.id.Button2);?????
  25. ????????button2.setOnClickListener(new?View.OnClickListener()?{?????
  26. ????????????public?void?onClick(View?view)?{??
  27. ????????????????mViewFlipper.showNext();?????
  28. ????????????}?????
  29. ????????});????????
  30. ????????Button?button3?=?(Button)?findViewById(R.id.Button3);?????
  31. ????????button3.setOnClickListener(new?View.OnClickListener()?{?????
  32. ????????????public?void?onClick(View?view)?{??
  33. ????????????????mViewFlipper.showNext();?????
  34. ????????????}??
  35. ????????});??
  36. ????????mGestureDetector?=?new?GestureDetector(this);??
  37. ????}??
  38. ????//别忘了覆盖onTouchEvent方法??
  39. ????@Override??
  40. ????public?boolean?onTouchEvent(MotionEvent?event)?{??
  41. ????????return?mGestureDetector.onTouchEvent(event);??
  42. ????}??
  43. ????//以下是OnGestureListener需要实现的方法??
  44. ????public?boolean?onDown(MotionEvent?e)?{??
  45. ????????//?TODO?Auto-generated?method?stub??
  46. ????????return?false;??
  47. ????}??
  48. ????public?boolean?onFling(MotionEvent?e1,?MotionEvent?e2,?float?velocityX,??
  49. ????????????float?velocityY)?{??
  50. ????????//?TODO?Auto-generated?method?stub??
  51. ????????if(e1.getX()?>?e2.getX())?{//向左滑动??
  52. ????????????mViewFlipper.setInAnimation(getApplicationContext(),?R.anim.push_left_in);?????
  53. ????????????mViewFlipper.setOutAnimation(getApplicationContext(),?R.anim.push_left_out);?????
  54. ???????????mViewFlipper.showNext();?????
  55. ???????}else?if(e1.getX()?<?e2.getX())?{//向右滑动??
  56. ???????????mViewFlipper.setInAnimation(getApplicationContext(),?R.anim.push_right_in);?????
  57. ???????????mViewFlipper.setOutAnimation(getApplicationContext(),?R.anim.push_right_out);?????
  58. ???????????mViewFlipper.showPrevious();?????
  59. ???????}else?{?????
  60. ???????????return?false;?????
  61. ???????}?????
  62. ???????return?true;??
  63. ????}??
  64. ??
  65. ????public?void?onLongPress(MotionEvent?e)?{??
  66. ????????//?TODO?Auto-generated?method?stub??
  67. ??????????
  68. ????}??
  69. ??
  70. ????public?boolean?onScroll(MotionEvent?e1,?MotionEvent?e2,?float?distanceX,??
  71. ????????????float?distanceY)?{??
  72. ????????//?TODO?Auto-generated?method?stub??
  73. ????????return?false;??
  74. ????}??
  75. ??
  76. ????public?void?onShowPress(MotionEvent?e)?{??
  77. ????????//?TODO?Auto-generated?method?stub??
  78. ??????????
  79. ????}??
  80. ??
  81. ????public?boolean?onSingleTapUp(MotionEvent?e)?{??
  82. ????????//?TODO?Auto-generated?method?stub??
  83. ????????return?false;??
  84. ????}??
  85. ????//以下是OnDoubleTapListener需要实现的方法??
  86. ????public?boolean?onDoubleTap(MotionEvent?e)?{??
  87. ????????//?TODO?Auto-generated?method?stub??
  88. ???????????mViewFlipper.startFlipping();?//双击自动切换界面??
  89. ???????????return?true;??
  90. ????}??
  91. ????public?boolean?onDoubleTapEvent(MotionEvent?e)?{??
  92. ????????//?TODO?Auto-generated?method?stub??
  93. ????????return?false;??
  94. ????}??
  95. ????public?boolean?onSingleTapConfirmed(MotionEvent?e)?{??
  96. ????????//?TODO?Auto-generated?method?stub??
  97. ????????if(mViewFlipper.isFlipping()){?//单击结束自动切换??
  98. ????????????mViewFlipper.stopFlipping();??
  99. ????????}??
  100. ????????return?false;??
  101. ????}??
  102. font-size: 1em; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 38px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 10px; border-left-width: 1px; border-left-style:

热点排行