android WindowManager
2015-11-23 17:48
399 查看
项目中有一个到时锁屏的的功能,就是当到达特定时间后,程序弹出一个蒙层将界面锁住,用户不能进行其他操作 (ps:按home键和back键蒙层也还在),除非输入密码或按规定操作,才可移除蒙层。
现将关键的使用代码简化贴出以供参考:
public class MainActivity extends Activity { private WindowManager.LayoutParams param; private WindowManager windowManager; private RelativeLayout mInView; private Button btn; private void initView() { windowManager = (WindowManager) getApplicationContext() .getSystemService(Context.WINDOW_SERVICE); param = new WindowManager.LayoutParams(); LayoutInflater inflater = LayoutInflater.from(getApplicationContext()); // 加载需要的XML布局文件 mInView = (RelativeLayout) inflater.inflate(R.layout.activity_main, null, false); btn = (Button) mInView.findViewById(R.id.btn); } public void addWindow() { // param.format = PixelFormat.RGBA_8888; // 背景透明 param.type = WindowManager.LayoutParams.TYPE_SYSTEM_ALERT;// 等于2003,意思是:系统提示,它总是出现在应用程序窗口之上 // param.gravity = 51; // 让该window后所有的东西都成暗淡(dim) param.format = 1; // param.alpha = 0.9f; param.type = 0x00000200;// 允许窗口扩展到屏幕之外,相当于满屏作用 // param.flags = 0x00000200; if (windowManager == null) windowManager = (WindowManager) getApplicationContext() .getSystemService(Context.WINDOW_SERVICE);// 获取WindowManager服务: try { windowManager.addView(mInView, param);// 添加view到屏幕 } catch (Exception e) { e.printStackTrace(); } } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); initView(); addWindow(); btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // 移除windowview if (mInView != null) { windowManager.removeView(mInView); } } }); } }
其中关于windowmanager的相关信息网上有很多介绍,这里不再赘述。大家可以根据自身的实际情况对WindowManager.LayoutParams参数进行设置来满足不同需求。
相关文章推荐
- Android WindowManagerService相关的Session
- Android的WindowManager解析
- Android平台WindowManager
- android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy@2
- Android 8.0系统上使用WindowManager添加view的一个问题
- android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy@4
- Android 之 Window、WindowManager 与窗口管理
- android中Activity中的WindowManager与Window
- Android窗口管理服务WindowManagerService对窗口的组织方式分析
- Android窗口管理服务WindowManagerService显示窗口动画的原理分析
- android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an appli
- [Android 界面] WindowManager的使用
- Android窗口管理服务WindowManagerService显示窗口动画的原理分析
- android之WindowManager学习
- Android8.0.0-r4——WindowManagerService
- 【Android】【Framewrok】WindowManager相关
- Android之WindowManager
- android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an appli
- Android----WindowManager
- Activity has leaked window that was originally added -界面退出时未关闭对话框异常 android.view.WindowManager$BadTokenException: Unable to add window -- token null is not valid; is your activity running? -