《Android开发艺术探索》读书笔记-第三章 View的事件体系

Android 开发艺术探索 - 读书笔记目录 仅作为读书笔记使用,建议阅读原书。 书中代码部分已和现版本不符,建议对比最新版本学习。 读了这本书,越发认识到和大佬们的差距。嗯,加油吧。 过去の自分が今仆の土台となる [第 1 章 - Activity 的生命周期和启动模式] 第 2 章 - IPC 机制 第 3 章 - View 的事件体系 [第 4 章 - View 的工作原理] 第 5 章 - 理解 R... 阅读详情

Android开发艺术探索-读书笔记

第三章 View的事件体系

3.1 View的基础知识

3.1.2 View的位置参数

1)View的位置参数top,left,right,bottom都是View相对于父容器的位置坐标
2)x = left + translationX;y = top + translationY
3)View在平移的过程中top和left并不会发生改变,改变的是translationX、translationY、x、y

3.1.3 MotionEvent和TouchSlop

1)getX/getY返回的是相对于当前View左上角的x和y的坐标,而getRawX/getRawY返回的是相对于手机屏幕左上角的x和y坐标。
2)TouchSlop是系统能识别出的被认为是滑动的最小距离。通过ViewConfiguration.get(getContext()).getScaledTouchSlop()来获取这个常量,根据这个常量可以用来过滤用户的小距离滑动。

3.1.4 VelocityTracker、GestureDetector和Scroll

VelocityTracker用来监测用户的手指滑动速度。GestureDetector用来监测用户的手势。Scroller用来滑动View对象。

3.2 View的滑动

3.2.1 使用scrollTo/scrollBy

1)scrollTo(x,y)是绝对滑动,即滑动到x,y的坐标处,scrollBy(x,y)是相对滑动,即滑动到相对原来位置的x,y坐标处。
2)scrollTo和scrollBy只能改变View的内容的位置而不能改变View在布局中的位置
3)从左向右滑动,mScrollX为负值,反之为正值;从上往下滑动,mScollY为负值,反之为正值。

3.2.2使用动画

1)View动画在动画结束后,并不是真的改变位置参数,不能触发点击事件,但是属性动画可以。
2)在Android3.0以下的手机上通过nineoldandroids来实现的属性动画本质上仍然是View动画。

3.2.3使用布局参数

可以通过更改LayoutParams的方式去实现View的滑动。

3.3弹性滑动

使用Scroller,动画,handler实现延时滑动。

3.4View的事件分发机制

3.4.1 点击事件的传递规则

1)ViewGroup处理事件的流程:对于一个根ViewGroup来说,点击事件产生后,首先会传递给它,ViewGroup的dispathTouchEvent方法就会被调用,如果这个ViewGroup的onInterceptTouchEvent方法返回true就表示它要拦截当前事件,接着事件就交给这个ViewGroup处理,即它的onTouchEvent方法就会被调用;如果这个ViewGroup的onInterceptTouchEvent方法返回false就表示它不会拦截当前事件,这时当前事件就会继续传递给它的子元素,接着子元素的dispathTouchEvent方法就会被调用,子元素继续走相同的处理流程。
2)View处理事件的流程:判断是否有OnTouchListener,如果有,则OnTouchListener的onTouch方法就会被回调,这时事件处理结果还要看onTouch的返回值,如果返回false,则当前View的onTouchEvent将会被调用;如果true,则onTouchEvent不会被调用。在onTouchEvent中,如果设置的有OnTouchListener,则onClick方法会被调用。

3.4.2 事件分发的源码解析

1)首先事件开始会交给Activity所属的Window进行分发。Window对应的实现类是PhoneWindow,PhoneWindow会将事件直接传递给DecorView。
2)子元素能够接受点击事件主要由两点来衡量:子元素是否在播放动画和点击事件的坐标是否落在子元素的区域内。

3.5 View的滑动冲突

3.5.1 常见的滑动冲突场景

1)外部的滑动方向和内部滑动方向不一致。
2)外部的滑动方向和内部的滑动方向一致。
3)多种滑动情况嵌套。

3.5.2 滑动冲突处理规则

需要外部处理则外部拦截事件,需要内部处理则内部阻挡外部拦截。

3.5.3 滑动冲突的解决方式

1)外部拦截法,重写父容器的onInterceptTouchEvent方法,在ACTION_MOVE事件时根据相应情形判断该由谁处理,对应进行相应的拦截。
2)内部拦截法,重写子元素的dispathTouchEvent方法,利用requestDisallowInterceptTouchEvent(boolean)方法,当为true,表示子元素要求父元素不能拦截这个事件。对应父元素需要拦截除ACTION_DOWN以外的其他事件,这样当子元素调用requestDisallowInterceptTouchEvent(false)方法时,父元素才能继续拦截所需的事件。为什么父元素不拦截ACTION_DOWN事件呢?因为源码中ACTION_DOWN事件并不受FLAG_DISALLOW_INTERCEPT标志位控制

告别浏览器崩溃!EasyPlayer.js长时间播放FLV视频内存泄漏排查指南 本文针对EasyPlayer.js长时间播放FLV视频导致浏览器内存泄漏和崩溃的问题,提供了一套系统性排查与解决方案。核心策略包括将视频编码从H.265转为H.264以降低解码压力,以及将传输协议从HTTP-FLV切换至WebRTC以优化资源管理。文章还详细介绍了播放器实例生命周期管理、浏览器开发者工具监控等精细化排查手段,帮助开发者实现稳定、长时间的多路视频播放。 阅读详情

相关推荐

通达信主力检测利器

主力轨迹:100*EMA(EMA(MTM,N1),N1)/EMA(EMA(ABS(MTM),N1),N1),COLORWHITE;主力拉高:IF(VAR51<REF(VAR51,1),VAR51,0),COLORYELLOW,NODRAW;洗盘:IF(VAR5<REF(VAR5,1),VAR5,0),COLOR000079,NODRAW;主力进场:IF(VAR5>REF(VAR5,1),VAR5,0),COLORRED,NODRAW;MAZL:MA(主力轨迹,N2),COLORYELLOW;

zhibiaogong的博客 7458

Android开发艺术探索——第三章View事件体系读书笔记

android开发艺术探索——第三章View的事件体系3.1View的基础知识点(一) View 和 ViewGroup Veiw 是Android中所有控件的基类。View是一种界面层的控件的抽象。 ViewGroup也是继承之View,翻译为控件组。ViewGroup内部包含了许多控件。所以View本身可以是单个控件也可以是由多个控件组成的一个控件。 例: Linear

英勇青铜5 871

Spring Boot集成Jasypt踩坑实录:自定义SM4加密器Bean加载失败的终极解决方案

本文深入剖析了Spring Boot集成Jasypt时自定义SM4加密器Bean加载失败的根源,即Spring Boot启动流程中Bean加载顺序与Jasypt自动配置的时序冲突。文章提供了三种从源码层面解决问题的有效方案,包括使用ApplicationContextInitializer提前注册、调整Bean依赖顺序以及自定义PropertySource处理机制,并给出了完整的国密SM4加密器实现与测试示例。

weixin_29294975的博客 200

Android 开发艺术探索读书笔记 第三章 View的事件体系

View的事件体系一 View的基础知识 什么是View   View是android所有控件的基类,View是一种界面层控件的一种抽象,代表了一个控件。所有控件都是View或者ViewGroup的子类,ViewGroup也继承了View,即所有控件都是View的子类。 View的位置参数   View的位置主要由4个顶点来决定的,位置坐标都是相对坐标,相对于父容器。看下图: 上图我

哆啦A梦的博客 985

【Educoder作业】※ 数字图像——绿幕抠像

这次作业比上一篇博客基本得多,大多都是基础函数的运用。没啥说的,就整个sizesizesize即可。 T2 获取一个像素 T3 图像反色 T4 修改透明度 ′RGBA′'RGBA'′RGBA′也是一种图像格式 T5 抠图 T6 添加场景 这个主要是pastepastepaste函数里面的maskmaskmask参量没整明白,转载一篇博客供参考。...

JZYshuraK的博客 7571

逆向解析M团外卖mtgsig与waimai_sign加密参数实战指南⊙ω⊙

本文详细解析了M团外卖App中mtgsig与waimai_sign两个核心加密参数的逆向分析与生成方法。通过抓包定位、静态逆向与Frida动态调试,拆解了waimai_sign的RSA签名逻辑与mtgsig的复杂参数组装加密流程,并提供了Python模拟实现的框架与调试心得,为安全研究及合规数据分析提供实战指南。

weixin_29327525的博客 1283

Android开发艺术探索 读书笔记 第三章 View事件体系

1. View基础知识 2. View的滑动 3. 弹性滑动 4. View的事件分发 5. View的滑动冲突

HuDP的博客 560

JLink版本不兼容?手把手教你解决APM32F003F6P6在Keil中烧写闪退和报错

本文详细解析了APM32F003F6P6在Keil中烧写闪退和报错的解决方案,重点介绍了JLink版本兼容性问题。通过实测不同版本组合,推荐使用JLink 7.20a或6.86b与Keil 5.25的黄金组合,并提供详细的降级驱动和工程配置步骤,帮助开发者高效解决烧写困境。

weixin_33694620的博客 416

《Android开发艺术探索》读书笔记第三章--View的事件体系

本文是《Android开发艺术探索》读书笔记系列第三篇,来看看本章的思维导图。 一、View基础知识 View和ViewGroup View是Andorid中所有控件的基类,ViewGroup可以翻译为控件组,其内部可以包含多个View,它也是继承了View,这意味着View本身就可以是单个控件也可以是多个控件组成的一个控件。 View的位置参数 View的位置主要由四个参数...

一颗烂葱的博客 367

基于YOLOv8的铁路轨道异物检测系统设计与实现

目标检测是计算机视觉领域的核心任务之一,旨在识别图像中特定目标的位置和类别。传统方法主要依赖手工特征(如HOG、SIFT等)和分类器(如SVM),而深度学习方法通过卷积神经网络自动学习特征表示,显著提升了检测性能。YOLO(You Only Look Once)系列算法作为单阶段目标检测的代表,以其高效的检测速度著称。YOLOv8是Ultralytics公司于2023年发布的最新版本,在精度和速度上都有进一步提升。

YOLO 574

黑猫带你学eMMC协议第29篇:eMMC设备锁详解(CMD42)

通过cmd42命令,可以给emmc设置密码,并且锁定emmc。这时候就不能对emmc的user分区进行读写数据访问了。设备锁在V4.3版本后的emmc里面,就只能保护user area分区,因此,被锁定的emmc,依旧可以正常访问BOOT\RPMB\GPP分区。emmc内部有128 bit PWD寄存器,用来存放密码,以及有8bit PWD_LEN寄存器,用来密码长度。这两个寄存器非易失性,掉电也不会丢失。

黑猫奥利奥的博客 3237

View的事件体系 - Android开发艺术探索读书笔记(第三章)

Android开发艺术探索读书笔记(第三章)尝试使用Markdown语法编写View的滑动三种方法 使用View自身提供的 scrollTo/scrollBy方法 通过动画给View平移效果 通过改变View的LayoutParams使得View重新布局 scrollTo/scrollBy方法只能改变内容位置,而不能改变View的布局位置

没有故事的A同学 908

SCI投稿Title Page、Cover letter、Highlights、Manuscript模板

(简要介绍一下论文的创新性). I hope this paper issuitable for “Journal Name”.版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。原文链接:https://blog.youkuaiyun.com/weixin_48615832/article/details/120317336。

qq_15963745的博客 3700

【读书笔记】【Android 开发艺术探索】第3章 View 的事件体系

一、 View 的基础知识  View 是 Android 中所有空间的基类。 1、 View 的位置参数     View 的位置主要有四个顶点决定的, top、left、right、bottom. 这些顶点的坐标是相对于 View 的父容器来说。   从 Android 3.0 增加的参数: x、 y、 translationX 和 translationY.  translati...

yxhuang2008的专栏 1399

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

《Android开发艺术探索》读书笔记--第3章 View的事件体系

文章目录3.1 View基础知识3.1.1 什么是View3.1.2 View 的位置参数3.1.3 MotionEvent 和 TouchSlop3.1.4 VelocityTracker、GestureDetector 和 Scroller3.2 View滑动 3.1 View基础知识 3.1.1 什么是View View 是 Android 中所有控件的基类,是一种界面层控件的抽象。 Vi...

soleil雪寂 638

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

《Android 开发艺术探索》读书笔记完整版

第一章 Activity的生命周期和启动模式 第二章 IPC机制 第三章 View的事件体系 第四章 View的工作原理 第五章 理解RemoteViews 第六章 Android的Drawable 第七章 Android动画深入分析 第八章 理解Window和WindowManager 第九章 四大组件的工作过程 第十章 Android的消息机制 第十一章 Androi...

JiandaoStudio 619

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Android开发艺术探索读书笔记

前言 Android开发艺术(这本书真的是艺术,太崇拜刚哥了,值得每一个做Android开发刷十遍的书)1,Activity生命周期和启动模式典型情况下的生命周期分析onCreate() onStart() onResume() onPause() onStop() onDestroy() onRestart()异常情况下的生命周期分析屏幕旋转onSaveInstanceState() onRes...

杨殿生的博客 428

Android 开发艺术探索 读书笔记3

P137 第三章View的事件体系 3.1View的基础知识  1.View是Android中所有控件的基类  2.View的位置参数:top:左上角纵坐标;left:左上角横坐标;right:右下角横坐标;bottom:右下角纵坐标 3.MotionEvent和TouchSlop   (1)MotionEvent            ACTION_DOWN, ACTION

Dseai_的博客 434

《Android开发艺术探索》读书笔记

一、前言 花了几天整理完《Android进阶之光》的读书笔记,效果不是很满意,把以前零散整合成一片超长笔记,总感觉也不是那么好,决定接下来读书笔记还是拆开来,以后也好查找一点。 ...

soleil雪寂 606

Android开发艺术探索读书笔记(一)

首先向各位严重推荐主席这本书《Android开发艺术探索》。     再感谢主席邀请写这篇读书笔记 + 书评。书已经完整的翻完一遍了,但是还没有细致的品读并run代码,最近有时间正好系统的把整本书从内容到代码都梳理一遍,一方面方便自己总结,一方面也为主席宣传,如果你还在犹豫要不要入手这本书的时候,希望看完我的笔记,能激发你购买的动力。OK,言归正传,下面先简单写几句书评,本人技术有限,只是从自身

amurocrash的专栏 9618

《Android开发艺术》读书笔记(View的事件体系)

《Android开发艺术》是今年上半年的读书计划之一, 本文是第三章”View的事件体系”的总结。View基础知识 View是Android所有控件的基类,ViewGroup即是一组View。 View的参数位置, 由四个顶点的坐标确定: top, left, right, bottom.(坐标是相对于View的父容器);Android3.0以后增加了x, y(左上角的坐标) translation

very_caiing 418

《Android 开发艺术探索》读书笔记

《Android 开发艺术探索》这本书写的太好了,作者任玉刚也是大牛,本人十分佩服,每次阅读这本书,都有不同的理解,所以将书中重要的知识点做了一些笔记,方便以后的阅读,下面是笔记的章节:第一章 Activity的生命周期和启动模式第二章 IPC机制第三章 View的事件体系第四章 View的工作原理第五章 理解RemoteViews第六章 Android的Drawable第七章 Android动画深

K-night的专栏 1527

Android开发艺术探索读书笔记(二)

首先感谢大家支持,昨天第一篇写出来之后反响很好,主席本人也非常赞赏(捂脸~),再接再厉,推出第二篇。这篇的主要内容是对两章View的内容进行总结。不得不说,自定义View是很多开发者的痛点,一方面我们很羡慕大神们做出骚气又酷炫的界面,另一方面我们又苦于网上的资料过于凌乱和纷杂导致很多时候越学越晕。尤其工科,想要深入掌握某种知识,体系化是非常重要的,就像我们必须先学四则运算,才能进阶到更复杂的开方乘方

amurocrash的专栏 1万+

Android开发艺术探索笔记

《Android开发艺术探索》这本书在几年前就已经买了,陆陆续续看过几次,都没有看完,没有理解透。 最近重读《Android开发艺术探索》,读了两次,第一次读完感觉还有大量的知识点没有理解,再次阅读,练习书中例子,记读书笔记,理解加深了几分。 [学习笔记]Android开发艺术探索:Activity的生命周期和启动模式 [学习笔记]Android开发艺术探索:IPC机制 [学习笔记]A...

尘埃zza的博客 494

《Android开发艺术探索》第3章-View的事件体系读书笔记

目录1 View 基础知识1.1 对于 View 的理解1.2 View 的位置参数有哪些?1.3 MotionEvent 类中的 getX()/getY() 和 getRawX()/getRawY() 这两组方法的区别是什么?1.4 如何获取滑动的最小距离?1.5 VelocityTracker、GestureDetector 和 Scroller 怎么使用?2 View 的滑动2.1 实现 V...

willwaywang6 1521

《Android开发艺术探索》读书笔记 (4) 第4章 View的工作原理

《Android开发艺术探索》读书笔记 (4) 第4章 View的工作原理 本节和《Android群英传》中的第3章Android控件架构与自定义控件详解有关系,建议先阅读该章的总结    除了掌握View的三大流程外,View常见的回调方法也 需要熟练掌握的,比如构造方法,onTttach、onVisibilityChanged、onDetach等,自定义View的类型,有直接继承自View

539
上一篇: 《Android开发艺术探索》读书笔记-第二章 IPC机制(未啃透)
下一篇: 《Android开发艺术探索》读书笔记-第四章 View的工作原理
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值