Android手势监听、触摸监听器、onTouchListener

这篇具有很好参考价值的文章主要介绍了Android手势监听、触摸监听器、onTouchListener。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

安卓手机在使用过程中,交互行为最常见的动作有ACTION_DOWN(按下)、ACTION_MOVE(移动)、ACTION_UP(抬起)、ACTION_CANCEL ,ACTION_OUTSIDE以及多点触摸事件等。

一次点击事件(onClickListener)由 一次down事件,多次move事件和一次up事件构成,move事件出现的次数由用户的按压效果决定。down表示手势事件开始,up表示结束,move则代表着过程。此时代码中onTouchLishtener方法中返回的结果为ture,则表示拦截用户的该次行为,由此方法进行处理。而事件不再传递给其他的事件监听器(如onClickListenter)。

//以悬浮窗部分代码为例
view.setOnTouchListener(new View.OnTouchListener() {
            private int x,y;
            public boolean onTouch(View view, MotionEvent motionEvent) {
                switch (motionEvent.getAction()) {
                    case MotionEvent.ACTION_DOWN:
                        x = (int) motionEvent.getRawX();
                        y = (int)motionEvent.getRawY();
                        break;
                    case MotionEvent.ACTION_MOVE:
                        int nowX = (int) motionEvent.getRawX();
                        int nowY = (int) motionEvent.getRawY();
                        int movedX = nowX - x;
                        int movedY = nowY - y;
                        x = nowX;
                        y = nowY;
                        layoutParams.x = layoutParams.x + movedX;
                        layoutParams.y = layoutParams.y + movedY;

                        // 更新悬浮窗控件布局
                        windowManager.updateViewLayout(view, layoutParams);
                        break;
                    default:
                        break;
                }
                return true;
            }
        });

MotionEvent的getRawX()、getRawY() 方法可获取当前移动到的位置(px)

MotionEvent的getAction()方法可获取当前动作:ACTION_DOWN(按下)、ACTION_MOVE(移动)、ACTION_UP(抬起)、ACTION_CANCEL ,ACTION_OUTSIDE。

如果touch事件中,返回了ture,则代表touch事件已处理用户的该次行为,不需要其他事件监听器进行处理,就不再将事件进行传递。如果返回了false,则代表未处理,需要将事件传递出去(即会被其他监听器监听到)。

Button/ImageButton可使用

单击监听OnClickListener或长时间单击(按住一段时间)OnLongClickListener

button.setOnClickListener(new View.OnClickListener() {
    public void onClick(View view) {
        //执行代码
    }
});
button.setOnLongClickListener(new View.OnLongClickListener() {
    public boolean onLongClick(View view) {
        //执行代码
        return true;
    }
});

 返回了ture,则代表事件已处理用户的该次行为,不需要其他事件监听器进行处理,就不再将事件进行传递。如果返回了false,则代表未处理,需要将事件传递出去(即会被其他监听器监听到)。文章来源地址https://www.toymoban.com/news/detail-757530.html

到了这里,关于Android手势监听、触摸监听器、onTouchListener的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 消息监听器和消息监听容器

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 消息监听器顾名思义用来接收消息,它是使用消息监听容器的必须条件。目前有8个消息监听器: 使用自动提交或容器管理的提交方法之一,处理从 Kafka 消费者 p

    2024年02月07日
    浏览(39)
  • watch监听器三种监听方式

    1、普通监听( 无法监听到第一次绑定的变化 ) 这样使用watch时有一个特点,就是当值第一次绑定的时候,不会执行监听函数,只有值发生改变才会执行。 2、普通监听( 可以监听到第一次绑定的变化) 给 text 绑定了一个handler方法,之前我们写的 watch 方法其实默认写的就是

    2024年02月15日
    浏览(30)
  • Servlet的监听器

    Servlet常用的监听器 ServletContextAttributeListener 用来感知 ServlerContext 对象属性变化,比如添加或删除属性变化 ServletContextListener 用来感知 ServlerContext 对象的创建和销毁的 ServletRequestListener 可以用来监听感知 ServletRequest 对象的创建和销毁的 ServletRequestAttributeListener 用来感知 Serv

    2024年02月17日
    浏览(31)
  • SpringBoot 监听器

    Spring的监听器也可以说是一种观察者模式,它能实现事件与事件监听者直接的解耦,在Spring中监听器的实现主要有一下重要组件: ApplicationListener:事件监听者,观察者; ApplicationEvent:Spring 事件,记录事件源、事件内容、时间等数据; 有些场景事件主体主要是String或基本类

    2024年02月09日
    浏览(28)
  • 计算属性和监听器

    计算属性是Vue中非常常用的一个概念,它能够根据现有的数据直接生成一个新的数据进行展示和操作。在Vue的实例中,可以使用 computed 来定义计算属性。 例如,我们有一个Vue实例 vm ,其中有一个数据 message ,我们可以通过计算属性 reversedMessage 来生成消息的反转字符串: 在

    2024年02月15日
    浏览(26)
  • 认识监听器(Listener)

    监听器是什么? 监听器(Listener)是一种运行在后台的程序,它主要用于监控某些事件在系统中的发生,并且根据这些事件做一些特定的处理。在Web应用程序中,监听器可以观察ServletContext、HttpSession以及ServletRequest等对象的变化,以便于在这些对象变化时进行相应的处理。监

    2024年02月02日
    浏览(25)
  • 【JavaWeb】9—监听器

    ⭐⭐⭐⭐⭐⭐ Github主页👉https://github.com/A-BigTree 笔记链接👉https://github.com/A-BigTree/Code_Learning ⭐⭐⭐⭐⭐⭐ 如果可以,麻烦各位看官顺手点个star~😊 如果文章对你有所帮助,可以点赞👍收藏⭐支持一下博主~😆 可见Java设计模式中的观察者模式。 观察者:监控『被观察者』

    2023年04月09日
    浏览(30)
  • Kafka 监听器详解

    Kafka Assistant 是一款 Kafka GUI 管理工具——管理Broker,Topic,Group、查看消费详情、监控服务器状态、支持多种消息格式。 你需要将 advertised.listeners (如果你使用Docker镜像,则为 KAFKA_ADVERTISED_LISTENERS )设置为外部地址(host/IP),以便客户端可以正确地连接到它。否则,他们会尝试

    2024年02月06日
    浏览(31)
  • Flowable监听器

    本人最近在找工作,有推荐的小伙伴私我,不胜感激。 开始、结束节点 连线节点 节点的开始和结束 网关的开始和结束 中间事件的开始和结束 开始时间结束或结束事件开始 Event事件 start 开始 take 启用 end 结束 类型 类:Class:com.sgp.StartListeners 类名全限定 监听器类上无论是否

    2024年02月16日
    浏览(28)
  • [Java]监听器(Listener)

    监听器就是监听某个对象的的状态变化的组件 监听器的相关概念: 事件源: 被监听的对象 ----- 三个域对象 request session servletContext 监听器 : 监听事件源对象的状态的变化都会触发监听器 注册监听器 : 将监听器与事件源进行绑定 响应行为 : 监听器监听到事件源的状态变化时

    2023年04月22日
    浏览(71)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包