关于OnTouchListener用法

关于OnTouchListener用法

2014年12月12日 20:55:03 tan313 阅读数:3158

常常会设置监听器,但是OnTouchListener类处理监听器类TouchListener时总是用错,借此记录下它的常用语法:

 
  1. package com.example.test;

  2.  
  3. import android.app.Activity;

  4. import android.os.Bundle;

  5. import android.util.Log;

  6. import android.view.Menu;

  7. import android.view.MotionEvent;

  8. import android.view.View;

  9. import android.view.View.OnTouchListener;

  10. import android.view.Window;

  11. import android.view.WindowManager;

  12.  
  13. public class MainActivity extends Activity {

  14.  
  15. private View myView = null;

  16. private final String tag="output";

  17. @Override

  18. protected void onCreate(Bundle savedInstanceState) {

  19. super.onCreate(savedInstanceState);

  20. this.requestWindowFeature(Window.FEATURE_NO_TITLE);

  21. this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,

  22. WindowManager.LayoutParams.FLAG_FULLSCREEN);

  23. setContentView(R.layout.activity_main);

  24. myView = (View)findViewById(R.id.myView);

  25. myView.setOnTouchListener(new OnTouchListener() {

  26.  
  27. @Override

  28. public boolean onTouch(View V, MotionEvent e) {

  29. int x;

  30. int y;

  31. switch(e.getAction()){

  32. case MotionEvent.ACTION_DOWN:

  33. x=(int)e.getX();

  34. y=(int)e.getY();

  35. Log.d(tag,"x="+x+", y="+y);

  36. //System.out.println("x="+x+" y="+y);

  37. break;

  38. case MotionEvent.ACTION_MOVE:

  39. x=(int)e.getX();

  40. y=(int)e.getY();

  41. Log.d(tag,"x="+x+", y="+y);

  42. System.out.println("x="+x+" y="+y);

  43. break;

  44. case MotionEvent.ACTION_UP:

  45. x=(int)e.getX();

  46. y=(int)e.getY();

  47. Log.d(tag,"x="+x+", y="+y);

  48. System.out.println("x="+x+" y="+y);

  49. break;

  50. }

  51.  
  52. // TODO 自动生成的方法存根

  53. return false;

  54. }

  55. });

  56.  
  57. }

  58.  
  59. @Override

  60. public boolean onCreateOptionsMenu(Menu menu) {

  61. // Inflate the menu; this adds items to the action bar if it is present.

  62. getMenuInflater().inflate(R.menu.main, menu);

  63. return true;

  64. }

  65.  
  66. }

 

 

在设置监听器时利用匿名监听类覆写public boolean onTouch(View V, MotionEvent e)方法,进行监听的设置,其中监听Touch时,有几种动作要注意,ACTION_DOWN,ACTION_MOVE,ACTION_UP分别指的是屏幕开始触摸,滑动,离开屏幕动作,设置完以后,尤其要注意返回值的作用,具体情况如下:

1.如果返回值为true,那么系统会连续处理触摸事件,处理完一个触摸事件以后,不会执行结束,而是准备执行下一次操作。

2.如果返回值为flase,那么系统只会处理触摸事件一次,处理完后,就以结束为准,不会再触发事件的处理。

你可能感兴趣的:(关于OnTouchListener用法)