1:创建一个锁屏的界面,可以放滑动拖拉的实现
2:在界面中需要屏蔽两个按键一个Home按键,一个Back按键实现如下
主界面要加风格:android:theme="@android:style/Theme.Wallpaper"
//home键的屏蔽
public void onAttachedToWindow() {
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG);
super.onAttachedToWindow();
}
//back键的屏蔽
public boolean onKeyDown(int keyCode ,KeyEvent event){
if(event.getKeyCode() == KeyEvent.KEYCODE_BACK)
return true ;
else
return super.onKeyDown(keyCode, event);
}
3:启动服务服务中注册广播
权限:<uses-permission android:name="android.permission.DISABLE_KEYGUARD"></uses-permission>
两个广播:android.intent.action.SCREEN_ON android.intent.action.SCREEN_OFF
屏蔽默认的锁屏机制:
mKeyguardManager = (KeyguardManager)context.getSystemService(Context.KEYGUARD_SERVICE);
mKeyguardLock = mKeyguardManager.newKeyguardLock("zdLock 1");
mKeyguardLock.disableKeyguard();
接收广播总启动主界面
4: 自定义的布局同拖动的动画实现,以及主界面的finish(),
部分关键的方法:
onFinishInflate()实现xml控件初始化。
Rect rect = new Rect();
tv_slider_icon.getHitRect(rect);
boolean isHit = rect.contains((int) event.getX(), (int) event.getY());