`

自定义View的事件

 
阅读更多
在Android系统中需要自定义View的事件,它根据根据鼠标拖动,长按,点击等事件进行处理。

--使用Android.view.GestureDetector这个接口

首先将自己的view继承此接口:

public class MyView extends View implements OnClickListener,GestureDetector.OnGestureListener

在view中添加GestureDetector的对象并初始化:

private GestureDetector mGestureDetector;

init() {

    mGestureDetector = new GestureDetector(getContext(), this);

}

之后重写view的onTouchEvent方法:

public boolean onTouchEvent(MotionEvent event) {
        switch (event.getAction()) {
        case MotionEvent.ACTION_DOWN:
        break;

        case MotionEvent.ACTION_UP:
        break;
        }
       return mGestureDetector.onTouchEvent(event);
    }

正常情况下以上步骤即可以将鼠标事件捕捉,并使用OnGestureListener接口方法去处理。

boolean onDown(MotionEvent e);//mouse down

void onShowPress(MotionEvent e);//Touch了还没有滑动

boolean onSingleTapUp(MotionEvent e);//like onClick->onKeyUp

boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY);//scroll

void onLongPress(MotionEvent e);//long press

boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY);//快速拖动

顾名思义可以想见这些方法的用途。

在实际使用过程中发现有一个问题:

当上下拖动的过程中向左右拖然后松开鼠标会不响应onTouchEvent的ACTION_UP事件,

所以要根据情况在onScroll中对distanceX和distanceY同时进行判断。
分享到:
评论

相关推荐

    Android自定义View的事件分发机制(一)

    在博客文章“Android自定义View的事件分发机制(一)”中,作者jsonnan详细阐述了这些概念,并可能通过实例代码展示了如何在自定义View中实现自定义的事件分发逻辑。通过阅读这篇文章,开发者可以更深入地理解...

    Android 自定义view模板并实现点击事件的回调

    本文将深入探讨如何创建一个自定义View模板,并实现点击事件的回调。这个模板以老版QQ的顶部栏为例,它通常包含左右两个按钮和一个中间的标题。 首先,我们创建一个attrs.xml文件在res/values目录下,用于定义...

    android 自定义view比较综合的例子

    在Android开发中,自定义View是一项重要的技能,它允许开发者根据特定需求创建独特且功能丰富的用户界面。这个“android 自定义view比较综合的例子”显然涵盖了多个高级话题,旨在帮助有一定基础的开发者提升自定义...

    android 自定义View界面大合集

    3. **触摸事件处理**:自定义View需要处理用户输入,这涉及到`MotionEvent`和触摸事件回调方法,如`onTouchEvent()`。理解触摸事件的分发机制以及如何在自定义View中正确响应触摸行为是必要的。 4. **动画效果**:...

    开发自定义View 源码

    4. **触摸事件处理**:自定义View可能需要处理用户的触摸操作。这通常涉及重写`onTouchEvent()`方法,解析MotionEvent并执行相应的响应逻辑。 5. **属性动画支持**:如果需要,自定义View还可以扩展对属性动画的...

    实现自定义view拖动、点击效果

    在Android开发中,自定义View是提升应用用户体验和界面独特性的重要手段。本文将深入探讨如何实现自定义View的拖动和点击效果,...通过实践,你将能够更好地掌握自定义View的触摸事件处理,从而打造更丰富的交互体验。

    自定义View进阶一

    - **触摸事件分发**:理解事件分发链,如何在自定义View中拦截和处理事件,以及如何处理多点触控。 - **自定义属性**:通过创建XML属性资源,可以在布局文件中为自定义View提供可配置的属性,增强其灵活性。 - **...

    Android自定义View图片裁剪,支持自由裁剪、按自定义比例裁剪、圆形裁剪、旋转、镜面翻转,从0到1自定义View

    方便调用,有示例。 Android自定义View图片裁剪,支持自由裁剪、按自定义比例裁剪、圆形裁剪、旋转、镜面翻转,从0到1自定义View。kotlin编写的一个自定义View。

    Android 自定义View视图

    通过实践这样一个自定义罗盘视图的项目,开发者不仅能学会如何创建自定义View,还能深入理解Android图形绘制、事件处理以及传感器数据的运用,这些都是Android应用开发中的重要技能。通过不断的练习和学习,开发者...

    android 自定义view及自定义属性

    在Android开发中,自定义View和自定义属性是提升应用个性化和功能扩展性的重要手段。本文将深入探讨这两个核心概念,以及如何在实际项目中应用它们。 ### 自定义View 自定义View允许开发者创建自己的视图组件,以...

    Android 自定义View实现水平温度计

    在Android开发中,自定义View是一项重要的技能,它允许开发者根据特定需求创建独特且功能丰富的UI组件。本项目"Android 自定义View实现水平温度计"就是这样一个实例,它通过自定义View来展示一个水平方向的温度计,...

    自定义View的详细流程代码

    本篇文章将深入探讨自定义View的详细流程,包括三种主要的自定义方式,自定义ViewGroup的实现,以及事件拦截机制的工作原理。 首先,自定义View的基本流程通常包括以下几个步骤: 1. **创建新类**:继承自Android...

    自定义View的学习使用

    6. **事件处理**:自定义View还可以处理触摸事件和焦点事件。可以通过重写`onTouchEvent(MotionEvent event)`和`onKeyDown(int keyCode, KeyEvent event)`等方法来实现。 在"ViewZhy01"这个示例中,可能包含了一些...

    Android自定义View实现转盘旋转的效果

    Android 自定义 View 实现转盘旋转的效果 Android 的自定义 View 为开发者定义和使用个性化的 View 提供了很好的支持,想要使用自己定义的 View,需要继承 View 类,并重写构造函数和 onDraw() 函数。onDraw 函数...

    Android中自定义View

    自定义View通常涉及到绘制、事件处理、动画以及性能优化等多个方面。下面我们将详细探讨这个主题。 一、自定义View的基本结构 自定义View首先要创建一个新的Java类,继承自Android提供的View或ViewGroup类。常见的...

    android 自定义view大全,非常好用

    标题中的"android 自定义view大全,非常好用"表明这是一个集合了多种自定义View实现的资源,旨在帮助开发者掌握自定义View的设计和实现。描述中提到的"展示了常见的自定义view套路,实用"意味着这个压缩包可能包含了...

    android demo,自定义控件view,点击该自定义view,onclick随机生成数字

    在Android开发中,自定义控件(View)是提升应用个性化和功能多样性的重要...通过阅读和理解这些代码,你可以更深入地学习自定义View的开发以及事件处理机制。记得在实际项目中,根据需求调整代码,以达到最佳效果。

    自定义view冲突解决

    如果自定义View与父View或兄弟View有相同的事件监听器,可能会发生事件处理混乱。使用`requestDisallowInterceptTouchEvent()`来控制事件分发,或者明确指定事件处理的优先级。 ### 5. 版本兼容性问题 不同Android...

    自定义view-画板

    第二个自定义View可能是用来处理触摸事件(TouchEvent)和手势识别的。在Android中,通过重写onTouchEvent()方法,我们可以捕获用户的触摸动作,包括ACTION_DOWN、ACTION_MOVE和ACTION_UP等。在这个过程中,我们需要...

    自定义View和自定义Button

    在Android开发中,自定义View和自定义Button是提升应用界面独特性和功能扩展性的重要手段。自定义View允许开发者根据需求创建独特的用户界面组件,而自定义Button则是在此基础上更进一步,专注于按钮这一常见的交互...

Global site tag (gtag.js) - Google Analytics