0
点赞
收藏
分享

微信扫一扫

自定义初学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 {
 
     
 
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);
 
     }
 
    }

举报

相关推荐

0 条评论