Android群英传笔记——第五章:Android Scroll分析

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android群英传笔记——第五章:Android Scroll分析相关的知识,希望对你有一定的参考价值。

一.滑动效果是如何产生的

滑动一个View的本质其实就是移动一个View,改变其当钱所在的位置,他的原理和动画效果十分的相似,就是通过不断的改变View的坐标来实现这一效果,动态且不断的改变View的坐标,从而实现View跟随用户触摸滑动而滑动

但是在讲解滑动效果之前,需要先了解一下android中窗口坐标体系和屏幕的触控事件——MotionEvent

1.Android坐标系

在物理学上,要描述一个物体的运动,就必须选定一个参考系,所谓滑动,正是相对于参考系的运动,在Android,系统将屏幕最左上角的顶点作为Android坐标系的原点,从这个点向右是X轴正方向,从这个点向下是Y轴正方向,如图

技术分享

系统提供了getLocationOnScreen(intlocation[])来获取Android坐标中的位置,即该视图左上角Android的坐标,另外,在触摸事件中使用getRawX(),getRawY()方法来获取坐标同样是Android坐标系中的坐标。

2.视图坐标系

Android中除了上面所说的这种坐标系之外们还有一个视图坐标系,他描述了子视图在父视图的位置关系,这两个坐标系并不复杂也不矛盾,他们的作用是相辅相成的,与Android坐标系类似,视图坐标系同样的以原点向右为X正方向,以原点向下为Y方法,只不过在视图坐标系中,原点不再是Android坐标系中的屏幕左上角,而是以父视图左上角为坐标原点,看图

技术分享

在触控事件中通过getX,getY来获取的坐标就是视图坐标中的坐标

3.触控事件——MotionEvent

触控事件MotionEvent在用户的交互中,占着举足轻重的位置,学好触控事件是掌握后续内容的基础,首先,我们来看看MotionEvent中封装的一些常量,他定义了触摸事件的不同类型。

技术分享

通常情况下,我们会在onTouchEvent(MotionEvent event)方法中通过event.getAction()来获取触摸事件的类型,并使用switch来判断,这个代码模块是固定的

技术分享

在不涉及多点触控的前提下,通常可以使用以下代码来完成触摸事件的监听,不过这里只是一个代码模块,后面我们会讲具体的逻辑的

在Android中,系统提供了非常多的方法来获取坐标值,相对距离等,方法丰富固然好,但也给初学者带来了很多的困扰,不知道在什么情况下使用下图总结人一下一些常用的API

 

以上是关于Android群英传笔记——第五章:Android Scroll分析的主要内容,如果未能解决你的问题,请参考以下文章

《Android群英传》---读书笔记7

《Android群英传》读书笔记---10.2(终篇)

《Android群英传》---读书笔记9

Android群英传神兵利器读书笔记——第三章:Android Studio奇技淫巧

《Andorid群英传》---读书笔记10.1

Android群英传笔记——摘要,概述,新的出发点,温故而知新,能够为师矣!