首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    切换按钮-自定义控件-拖动效果

    重写View的onTouchEvent()方法,传递进来MotionEvent对象 调用MotionEvent对象的getAction()方法,获取当前动作 switch判断一下当前动作 事件为MotionEvent.ACTION_DOWN...是手指第一次触摸屏幕 事件为MotionEvent.ACTION_MOVE是手指在屏幕上移动 事件为MotionEvent.ACTION_UP是手指离开屏幕 当手指触摸到屏幕 定义手指最后的坐标lastX...调用MotionEvent对象的getX() 方法,得到lastX的值 当手指在屏幕上移动 定义手指横向移动的距离dis 调用getX()-lastX就是移动的距离 定义滑动按钮的左边就是这个移动的距离...android.graphics.Canvas; import android.graphics.Paint; import android.util.AttributeSet; import android.view.MotionEvent...; /** * 触摸事件 */ private int firstX; @Override public boolean onTouchEvent(MotionEvent

    1.7K20

    Android 触摸事件分发和拦截机制

    首先,对于 ViewGroup 来说,我们可以选择性的重写下面三个方法: public boolean dispatchTouchEvent(MotionEvent ev); public boolean...onInterceptTouchEvent(MotionEvent ev); public boolean onTouchEvent(MotionEvent ev); 我们分别来看一下这三个方法: ?...(MotionEvent ev) { return onTouchEvent(ev); } 接下来要明白: 1、无论是对于 View 还是 ViewGroup来说,一个 触摸事件(MotionEvent...对象) 只要能传递给这个 View/ViewGroup , 那么这个 View/ViewGroup 的 dispatchTouchEvent(MotionEvent event) 就一定会被调用 2...所以之前只有一遍 LogCat ,即只有 ACTION_DOWN 类型的 MotionEvent 对象被传递了,ACTION_UP 类型的 MotionEvent 对象并没有传递给这个 View 处理。

    1.2K30

    开发笔记-自定义View(十)-View的事件分发机制

    所谓点击事件(Touch)的事件分发,其实就是对MotionEvent(Touch的封装)事件的分发过程,即当一个MotionEvent产生以后,系统需要把这这个事件传递给那个具体的View。...1.MotionEvent 那么MotionEvent又是什么呢? 这个类就是记录手指接触屏幕后所产生的一系列的事件(也就是说我们事件分发其实就是分发MotionEvent这个对象)。...事件的类型与含义如下: 事件类型 具体动作 MotionEvent.ACTION_DOWN 按下View(所有事件的开始) MotionEvent.ACTION_UP 抬起View(与DOWN对应) MotionEvent.ACTION_MOVE...当接收到MotionEvent.ACTION_UP是。...当接收到MotionEvent.ACTION_UP时(前提MotionEvent.ACTION_DOWN也接收到了)会经过判断最后执行 performClick();方法。

    78620
    领券