2017/10/1 学习日记

1. Activity的组成 以及 绘制的流程

    结构组成:Activity是由最外层的PhoneWindow包裹着它的内部类DecorView,DecorView中又根据不同的情况加载不同的布局,(带有Title或不带)+ContentView.

    流程:

               先说说DecorView的创建过程: Activity的初始化流程是从第一次setContentView开始,activity的setContentView方法直接调用PhoneWindowView的setContentView方法,而在它的setContentView方法中,会判断mContentParent是否为空来选择是否创建新的DecorView,这里的mContentParent可以理解为DecorView或者它的子View,至此,DecorView创建完成。

              而Activity的绘制流程是,当调用Activity的StartActivity之后会调用ActivityTread的handleLauncherActivity方法,该方法中首先调用performLauncherActivity创建Activity,这个方法中会调用Activity的onCreat方法,而DecorView也是在这一步创建完成。之后会调用handlerResumeActivity()方法,该方法中调用了Activity的onResume,该方法中会获取到windowManager的实例,并通过windowManager的addView方法添加我们刚刚创建好的DecorView,而windowManager的addView方法中通过ViewRootImpl的setView方法添加到window当中,然后在进行View的measure,layout,draw三大流程将Activity最终展示在我们面前。


2.View的事件分发

   分两部分:

               View,View中主要包含了两个事件,dispatchTouchEvent和onTouchEvent两个事件。

               ViewGroup中主要包含了三个,除了View中包含的两个事件外,还有一个onInterceptTouchEvent

               ViewGroup和View呈现树状结构,事件的分发是通过dispatchTouchEvent进行的,值得一提的是,此处分发的事件为Down事件(一次Touch事件由Down,若干Move,Up三部分组成,Move次数可以为零)ViewGroup会在该方法中通过遍历子View调用子View的dispatchTouchEvent来寻找真正要处理本次事件的子View,当有子View的dispatchTouchEvent事件返回true时,就会停止事件分发,并将该子View的记录在它的上层View中,最后执行onTouchEvent事件进行处理。当子View没有任何一个返回true的时候,ViewGroup就会执行自身父类的dispatchTouchEvent方法,ViewGroup继承于View,因此通过View的dispatchTouchEvent去执行onTouchEvent事件。

            onInterceptTouchEvent是用来拦截Down事件的分发的。

             onTouchListener方法中的onTouch事件优先级要高于onTouchEvent()事件;


3.View的measure,layout,draw三大流程,今天看得云里雾里的,没搞懂,明天继续。


明日计划:

   1.View的三大流程

   2.自定义View



  

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看rEADME.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看rEADME.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值