自定义初学3——实现触屏事件

在上一篇中,我们注意到自定义View中有个onTouchEvent()方法,看名字就知道是干什么的了。通常我们处理触屏事件会用TouchListener和Event Handler完成。前者需要扩展OnTouchListener并实现onTouch方法,后者需要扩展控件并实现onTouchEvent方法
例如:
button.setOnTouchListener(new VIew.OnTouchListener() {
   
   @Override
   public boolean onTouch(View v, MotionEvent event) {
    if (v instanceof Button) {
     //处理button的touch事件
    } else {
     //处理别的
    }
    return false;
   }
  });

而使用Event Handler则需要扩展并覆盖onTouchEvent方法,举个例子:
class CustomView extends View {
     
     public CustomView(Context context) {
   super(context);
  }

  @Override
     public boolean onTouchEvent(MotionEvent event) {
      int action = event.getAction();
     
      switch (action) {
       case MotionEvent.ACTION_DOWN:
       //处理action_down事件
        break;
       case MotionEvent.ACTION_MOVE:
       //处理action_move事件
        break;
    case MotionEvent.ACTION_CANCEL:
     //处理action_cancel事件
     break;
 
    default:
     
     break;
   }
      return super.onTouchEvent(event);
     }
    }


你可能感兴趣的:(组件,Android开发,自定义)