A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张然龙 金牌黑马   /  2014-7-12 15:06  /  1419 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

自己DIY的锁屏apk,第一次发帖,本人是小白,如有问题欢迎指正。
代码参考了之前论坛里的一个教程(具体地址忘了)

MainActivity
1.设置锁屏的开关(ToggleButton) enableBittonbtn_enable_listener监听点击后状态切换
2.全局变量Lockscreen_enable判断是否启动锁屏,若为true,开始donService锁屏服务,若为false则停止服务
3.使用

DonBootService
1.是为了在手机重启后开启继续锁屏程序的监听

donService服务启动
1.onCreate(创建服务)
1)首先注册屏幕开关的IntentFilter,监听屏幕开关的系统事件分别为ACTION_SCREEN_ON,ACTION_SCREEN_OFF,并且设置他们的接受优先级到最高,这样可避免先接收到系统默认锁屏。
2)当然要设置广播接收器(BroacastReceiver)mScreenOffReceiver, mScreenOnReceiver

3)此外还要初始化一个TelephonyManager监听电话状态,因为接听电话时,电话会黑屏,但这时要禁止启动锁屏界面,以免影响通话。

4)初始化一个(Intent)donLockIntent用来启动锁屏界面


2.onDestroy(销毁任务)
1)注销广播接收器,

3.mScreenOnReceiver,mScreenOnReceiver广播接收器
1)      获得KeyguardLock,并禁止其使用,让手机上的按键都无效。
2)      abortBroacast,将广播信号丢弃,这样系统默认锁屏就不会启动。
3)      启动锁屏主界面TestLockScreenActivity

4.PhoneStateListener
1)      监听打电话状态,通话过程中禁止启动锁屏界面。


TestLockScreenActivity(锁屏主界面)
1.onCreate:初始化主界面
1)      隐藏状态栏让屏幕全屏显示:
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);     (隐藏还是有问题,有解决方法的欢迎联系)
2)      设置静态布局 main  
3)      InitViews()初始化main中各种组件,包括sliderLayout,myClock(数字钟)以及layout_bed
4)      设置sliderLayout的异步控制Handler,收到解锁成功信息后退出界面。

SliderRelatvieLayout
1.       onFinishInflate: (Finalize inflating a view from XML. This iscalled as the last phase of inflation, after all child views have been added)

1).在此方法内实现对sliderLayout布局的初始化。包括用findViewID为对应布局组件初始化变量

2)mContext.registerReceiver(message,newIntentFilter("android.provider.Telephony.SMS_RECEIVED")); 增加对收取到短信的监听器


2.      onTouchEvent:实现对不同手势的响应
包括 handleActionUpEvent, handleActionDownEvent, handleActionMoveEvent等等实现具体的响应事件。
1)  其中handleActionUpEvent要判断手指下滑位置超过预设位置,若超过则向主界面的Handler发送退出锁屏消息,若没超过执行backDragImgTask线程,被子回复到原来位置;

2)  handleActionDownEvent要判断手指下落位置在哪里,如果在被子的区域就执行异步线程motionDown,如果在袜子位置就实现查看短信时间;
motionDown实现手机震动和人物震动事件

3)  handleActionMoveEvent执行拖拽被子事件,用异步线程dragImgTask实现

3.      messageReceiver监听短信收取:收到短信后,袜子里会出现礼物


MyQuilt
主要实现手势拖拽时,对被子(layout_quilt)的刷新绘制















源码: testLockScreen.zip (831.41 KB, 下载次数: 215)

1 个回复

倒序浏览
哈哈哈,加油!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马