android4.0以上屏蔽home键的方法(有源代码)
2014-06-10 18:08
190 查看
能百度这个问题的应该都试过以前2.X版本屏蔽home键的方法在4.0以上是不行的 我自己当时也试了很久 因为当时要做一个功能 一个登录界面 未登录不能进入使用本设备 返回键啊什么的很好屏蔽 可就是home键试了很多 都无法实现屏蔽 就在准备放弃的时候 发现了一个东西。
我代码中有是要通过service中弹出dialog的操作 解决办法是将自定义的dialog设为系统级警告 这样就可以实现通过service弹出dialog 为什么要说这个呢?那是因为我还发现系统警告级别的dialog弹出以后 home键是无效的 相信说到这里大家应该明白点什么了
我是这么做的 在activity中放一个空布局 然后弹出一个系统级别的自定义dialog 并且设置dialog为全屏模式就可以实现屏蔽home键了 当然dialog的返回键也可以屏蔽掉 这样子就屏蔽掉了返回键和home键了
以下 献上源码:
activity中代码
以上操作会有一个美中不足的地方 就是全屏dialog还是会和屏幕产生一点缝隙 这个问题我用过很多方法都没有解决 最后决定让美工做张图配合activity上面的dialog 大家有解决方法别忘了留言哦
我代码中有是要通过service中弹出dialog的操作 解决办法是将自定义的dialog设为系统级警告 这样就可以实现通过service弹出dialog 为什么要说这个呢?那是因为我还发现系统警告级别的dialog弹出以后 home键是无效的 相信说到这里大家应该明白点什么了
我是这么做的 在activity中放一个空布局 然后弹出一个系统级别的自定义dialog 并且设置dialog为全屏模式就可以实现屏蔽home键了 当然dialog的返回键也可以屏蔽掉 这样子就屏蔽掉了返回键和home键了
以下 献上源码:
activity中代码
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.login); //获取自定义dialog的布局 LayoutInflater inflater = LayoutInflater.from(getApplicationContext()); View layout = inflater.inflate(R.layout.login_dialog, null); //创建自定义dialog // android.R.style.Theme_DeviceDefault_NoActionBar_Fullscreen 底色是黑色 看不到activity背景 // android.R.style.Theme_Translucent_NoTitleBar_Fullscreen 底色是透明 能看到activity背景 //将dialog设为全屏 Builder mdialog = new AlertDialog.Builder( MainActivity.this, android.R.style.Theme_Translucent_NoTitleBar_Fullscreen); // .setInverseBackgroundForced(true) mdialog.setView(layout); // 由于是在service里面做dialog弹出 所以要做下面的操作 并且要加入权限 <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> AlertDialog mDialog = mdialog.create(); // 设定为系统级警告,关键 mDialog.getWindow().setType( WindowManager.LayoutParams.TYPE_SYSTEM_ALERT); //屏蔽dialog返回键 注意返回值 如果return不是下面这样 有可能导致edittext中无法删除文字 mDialog.setOnKeyListener(new OnKeyListener() { @Override public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) { if ((keyCode == KeyEvent.KEYCODE_BACK)) { return true; } return false; } }); mDialog.show(); }
以上操作会有一个美中不足的地方 就是全屏dialog还是会和屏幕产生一点缝隙 这个问题我用过很多方法都没有解决 最后决定让美工做张图配合activity上面的dialog 大家有解决方法别忘了留言哦
相关文章推荐
- android 4.0以上屏蔽home键,返回键等键所在一栏两种方法。
- Android屏蔽home键的代码,咋摁也不响应的方法
- android4.0屏蔽HOME键的方法
- android屏蔽返回键和home键等各个按键的方法
- android4.0 frameworks屏蔽key、touch等事件,不派发到app的方法
- 如何对某一区域的代码屏蔽警告的方法,及其一些问题
- 屏蔽模拟器Home键的方法
- 屏蔽alt+f4代码,一个变通的方法
- [学习记录]屏蔽Activity, Dialog风格Activity, AlertDialog的Home键功能方法(总结)
- android屏蔽HOME键的方法
- android4.0 中如何在app 中屏蔽HOME键
- 网页屏蔽(左右键,代码等)的非JS方法
- 网页屏蔽(左右键,代码等)的非JS方法
- Android 屏蔽BACK键和HOME键的方法
- Android软件广告屏蔽方法及代码
- 在activity中屏蔽home键的方法
- 屏蔽alt+f4代码,一个变通的方法
- 网页屏蔽(左右键,代码等)的非JS方法
- ROME解析器和生成器的使用方法(附有源代码)
- 屏蔽Activity, Dialog风格Activity, AlertDialog的Home键功能方法(总结)