Android View系统解析(上)

Android View系统解析(上)


              转载请注明出处:http://blog.csdn.net/singwhatiwanna/article/details/38426471(来自singwhatiwanna的csdn博客)

         最近看到了任老师的一篇关于如何模仿安卓L上的reveal的一篇博客,感觉很不错,但是其中涉及到了View的一些比较里层的只是,于是又在老师的博客里面翻来翻去的,果然翻到了关于View的一些系统的介绍,边理解,边转载到自己的博客上面来,在以后的开发过程中肯定也是用的上的....


           View中会涉及到一个系统所能使别的最小滑动的距离,也就是TouchSlop,获取这个最小距离的方式为:
<span style="font-size:14px;">ViewConfiguration.get(getContext()).getScaledTouchSlop()</span>

           在View上手指滑动的时候,会有速度的变化,View中有一个叫做VelocityTracker的东西能够追踪速度的变化情况,其使用的方法未:
<span style="font-size:14px;">velocityTracker = VelocityTracker.obtain();
velocityTracker.addMovement(event);
velocityTracker.computerCurrentVelocity(1000);
int velocity = (int) velocityTracker.getXVelocity();
...
velocityTracker.recycle();</span>

           View上还有一个很方便开发者使用的手势判断GestureDetector,这个手势检测封装好了onTouchEvent(),并且自带上面说到的速度追踪,使用方法为:
<span style="font-size:14px;">boolean consume = mGestureDetector.onTouchEvent(event);</span>
           并且还提供了很多接口,
<span style="font-size:14px;">OnGestureListener{
onDown, onSingleTapUp, onFling , onScroll , onLongPress
}</span>

<span style="font-size:14px;">mGestureDetector.setLongPressEnabled(false);</span>
           这句话可以处理长按屏幕后无法拖动的现象.






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。
Android中的点击事件处理是通过View的触摸事件来实现的。当用户在屏幕上点击一个View时,Android系统会通过一系列的事件分发和处理机制来触发相应的点击事件回调。 具体来说,Android中点击事件的处理过程如下: 1. 用户点击屏幕,触摸事件被设备驱动程序捕获。 2. 设备驱动程序将触摸事件传递给Android系统。 3. Android系统通过事件分发机制将触摸事件传递给最顶层的ViewGroup,即Activity的根布局。 4. 顶层的ViewGroup通过遍历子View的方式将触摸事件传递给合适的子View。 5. 子View接收到触摸事件后,会调用自己的onTouchEvent()方法进行处理。 6. 如果子View的onTouchEvent()方法返回true,表示该子View已经消费了该触摸事件,不再向其他View传递。 7. 如果子View的onTouchEvent()方法返回false,表示该子View未消费该触摸事件,该触摸事件会继续向上传递给父View。 8. 如果所有的View都没有消费该触摸事件,最终会传递给Activity进行处理。 这是一个简化的点击事件处理流程,实际上还涉及到多点触控、滑动等更复杂的情况。Android系统的点击事件处理是基于触摸事件和View的事件分发机制来实现的,通过理解这个流程,我们可以更好地理解和定制点击事件的处理逻辑。如果你想深入了解相关的系统源码,可以查看AndroidViewViewGroup类的源码,以及相关的事件分发机制的实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值