- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
我觉得对于普通人来说, 最常见的是 Android 解屏的界面,然后应该是 Home
界面。今天就来分析一下解屏界面的相关代码(以索爱的解锁界面为例)。
首先看解屏的界面,我把解屏的界面分为两个部分,最上部是 status Bar,
下面是 LockScreenSemc,在 LockScreenSemc上有一个可供滑动解锁的界面,每
个界面对应的类如图所示。
两个类所在包:
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 作为
它的一个属性值,
另外此类实现了 SlidingTabSemc.OnTriggerListener。这个 listener 用来执行我
们从左到右或者从右到左的滑动,在构造函数中有
mSelector.setOnTriggerListener(this);这样我们在 SlidingTabSemc上的滑动会调用
到 public void onTrigger(View v, int whichHandle) 方法中。
onTrigger 的执行为两个分支,一个为从右滑向左,执行了
mAudioManager.setRingerMode(),设置了声音的模式,并更新右边声音的图片。
另一个为从左滑向右,执行的是 mCallback.goToUnlockScreen();这个 mCallback
是何方神圣呢?它是 KeyguardScreenCallback类型,并且在 LockScreenSemc初
始化的时候传进来的,跟踪后我们发现, LockScreenSemc是类
LockPatternKeyguardView 的一个属性值( private View mLockScreen);
KeyguardScreenCallback的实现在 LockPatternKeyguardView 中。
LockPatternKeyguardView 中 LockPatternKeyguardView 的逻辑是,如果用户
在设置 -位置和安全 -设置屏幕锁定中设置了解锁画面,则调用了
updateScreen(Mode.UnlockScreen)进入相应的解锁画面,否则调用:
getCallback().keyguardDone(true); 这个 getCallback() 返回的是
KeyguardViewMediator 。
KeyguardViewMediator 中 keyguardDone()方法,最终会给 Handler 发送
KEYGUARD_DONE 的消息, Handler 会执行 handleKeyguardDone()方法,在方
法中会调用 handleHi
您可能关注的文档
- Android如何自定义共享库归纳.pdf
- android上传图片至服务器转归类.pdf
- Android设计招式之美-收集.pdf
- Android实现ListView的展开式动画ExpandAnimation定义.pdf
- Android实验二-UI界面开借鉴.pdf
- Android使用GoogleWeather制作天气预报程序分享.pdf
- android视频教程下载参考.pdf
- Android手机SD卡中文件夹对应的意思分享.pdf
- Android手机基础知识参考.pdf
- Android手机利用wifi连接笔记本电脑整理.pdf
- 2024浙江衢州市常山县“英才荟”事业单位紧缺急需人才招聘18人笔试备考试题及答案解析.docx
- 2024浙江省近海海洋工程环境与生态安全重点实验室招聘1人笔试备考试题及答案解析.docx
- 2024广东阳江市阳西县补充招聘森林消防应急队员5人笔试备考试题及答案解析.docx
- 2024浙江松阳县新华书店有限公司招聘见习大学生1人笔试备考试题及答案解析.docx
- 2024云南曲靖市马龙区部分事业单位选调(含选调计划)26人笔试备考试题及答案解析.docx
- 2024广西柳州市残疾人劳动就业服务中心招聘残疾人专职委员1人笔试备考试题及答案解析.docx
- 2024广西河池市总工会公开招聘社会化工会工作者3人笔试备考试题及答案解析.docx
- 2024贵州华贵人寿保险股份有限公司第三次社会招聘15人笔试备考试题及答案解析.docx
- 2024广西百色市田东县5月城镇公益性岗位工作人员招聘4人笔试备考试题及答案解析.docx
- 2024广西百色市那坡县坡荷乡人民政府公开招聘编外工作人员2人笔试备考试题及答案解析.docx
文档评论(0)