SimpleTouch:事件分发可以如此清晰

栏目: IOS · Android · 发布时间: 7年前

内容简介:在项目的在项目的

SimpleTouch 为了解决事件分发问题而诞生,该库可以在运行时期打印完整的事件分发流程。

  • 监听 View 的 dispatchTouchEvent , onTouchEvent , onInterceptTouchEvent 。
  • 运行时期动态打印事件分发流程。
  • 每一次完整的事件分发记录以 json 的形式写入文件。
  • 去重功能,对相同的 move 事件会自动过滤。
  • 提供 no-op 版本,使用时可区分 debug 和 release 。
  • 提供不同模式显示

使用

添加依赖

在项目的 app 下的 build.gradle 中添加依赖

debugApi 'com.spearbothy:simple-touch:1.0.7'
releaseApi 'com.spearbothy:simple-touch-no-op:1.0.7'
复制代码

初始化

在项目的 Application 的 onCreate() 中调用初始化方法 Touch.inject(this);

Touch.init(this, new Config().setSimple(false));

复制代码

Config 对象提供一些配置选项

public class Config {

    // 输出的日志以极简模式输出
    private boolean isSimple = true;
    // 是否延迟打印日志,延迟打印日志会在触摸事件结束之后打印,并且具有去重功能
    private boolean isDelay = true;
    // 是否保留重复的,默认不保留
    private boolean isRepeat = false;
    // 是否写入到文件
    private boolean isPrint2File = true;
    // 是否处理,不处理则不会监听任何方法,任何功能都无法生效
    private boolean isProcess = true;
}

复制代码

注入代理类(用于监听事件分发)

在 Activity 的 onCreate() 的 super.onCreate(savedInstanceState); 之前调用.

@Override
    protected void onCreate(Bundle savedInstanceState) {
        Touch.inject(this);
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mRootView = (LinearLayout) findViewById(R.id.root);
    }
复制代码

使用

编译完成之后,打开app,开始触摸吧!!! 每一次手指离开到触摸请间隔大于1s,目的是对于每次触摸加以区分,暂时没想到合适的判断条件。

流程图查看

下拉通知中可以看到SimpleTouch的入口

SimpleTouch:事件分发可以如此清晰

备注

  • 提供了 no-op 版本,该版本中包含有初始化和注入方法的空实现,以达到 debug 和 release 使用不同的版本,使 release 不包含任何注入和初始化逻辑。
  • 在注入的时候有点耗时,如果页面过于复杂,会有种页面卡顿的感觉.

引用或借鉴的三方库

com.android.support:appcompat-v7
com.google.dexmaker:dexmaker
com.alibaba:fastjson
com.noober.background:core
com.yuyh.json:jsonviewer

关于

有任何疑问可以通过 issue 或者以邮件的形式发送到 zziamahao@163.com


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。

妙趣横生的算法

妙趣横生的算法

杨峰 / 清华大学出版社 / 2010-4 / 49.00元

《妙趣横生的算法(C语言实现)》理论与实践相结合,旨在帮助读者理解算法,并提高C语言编程能力,培养读者的编程兴趣,并巩固已有的C语言知识。全书分为2个部分共10章,内容涵盖了编程必备的基础知识(如数据结构、常用算法等),编程实例介绍,常见算法和数据结构面试题等。《妙趣横生的算法(C语言实现)》最大的特色在于实例丰富,题材新颖有趣,实用性强,理论寓于实践之中。通过《妙趣横生的算法(C语言实现)》的学......一起来看看 《妙趣横生的算法》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

MD5 加密
MD5 加密

MD5 加密工具