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

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

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

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

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

使用

添加依赖

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

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

初始化

在项目的 ApplicationonCreate() 中调用初始化方法 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;
}

复制代码

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

ActivityonCreate()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 版本,该版本中包含有初始化和注入方法的空实现,以达到 debugrelease 使用不同的版本,使 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


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

查看所有标签

猜你喜欢:

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

Visual LISP程序设计

Visual LISP程序设计

李学志 / 清华大学 / 2006-5 / 29.00元

本书系统地介绍了AutoCAD最新版本(2006)的Visual LISP程序设计技术。全书共分13章。前3章介绍AutoLISP语言的基础知识,第4章介绍Visual LISP的开发环境,第5~7章介绍程序的编辑、调试和设计的方法与技巧,第8章介绍如何定义新的AutoCAD命令及创建图层、线型、文字样式、剖面线、尺寸标注等各种AutoCAD对象,以及如何实现参数化图形设计的方法和技术,第9章介绍......一起来看看 《Visual LISP程序设计》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具