Android锁屏与解屏相关代码分析

我觉得对于普通人来说,最常见的是Android解屏的界面,然后应该是Home界面。今天就来分析一下解屏界面的相关代码(以索爱的解锁界面为例)。

首先看解屏的界面,我把解屏的界面分为两个部分,最上部是status Bar,下面是LockScreenSemc,在LockScreenSemc上有一个可供滑动解锁的界面,每个界面对应的类如图所示。

Android锁屏与解屏相关代码分析

Android锁屏与解屏相关代码分析

两个类所在包:

com.android.internal.policy.impl.LockScreenSemc.java

com.android.internal.widget.SlidingTabSemc.java

SlidingTabSemc.java分析:

分析我们的Touch在 SlidingTabSemc 上产生的效果,主要看onTouchEvent ()的处理。

ACTION_DOWN 时会调用disableButtonPress(),产生手指点击时的动画效果。

ACTION_MOVE 时会调用moveControl()产生图片跟随手指移动的效果。

ACTION_UP   时会判断移动的位置是否已经到了,可以触发Trigger的程度,如果到了,则调用   dispatchTriggerEvent,通知在 SlidingTabSemc上的Trigger Listener。由于 SlidingTabSemc上的 Trigger Listener是在  LockScreenSemc里实现的,所以会代用到 LockScreenSemc中。

LockScreenSemc.java分析:

代码中有一行:  private SlidingTabSemc mSelector; 将SlidingTabSemc 作为它的一个属性值,

相关推荐