windowManager

WindowManager的使用

半腔热情 提交于 2019-12-09 12:08:58
我们 Android 平台是一个又一个的Activity组成的,每一个Activity有一个或者多个View构成。所以说,当我们想显示一个界面的时候,我们首先想到的是建立一个Activity,然后所有的操作在Activity里面实现,或者是一个Dialog或者Toast。这种方式固然简单,但是在有些情况下,我们要求的只是简单的显示,用Activity显然是多余,这个时候,我们如何处理呢? 原来,整个Android的窗口机制是基于一个叫做 WindowManager,这个接口可以添加view到屏幕,也可以从屏幕删除view。它面向的对象一端是屏幕,另一端就是View,直接忽略我们以前的Activity或者Dialog之类的东东。其实我们的Activity或者Diolog底层的实现也是通过WindowManager,这个 WindowManager是全局的,整个系统就是这个唯一的东东。它是显示View的最底层了。 写一个简单的代码: WindowManager mWm = (WindowManager)getSystemService(Context.WINDOW_SERVICE); Button view = new Button(this); view.setText("window manager test!"); WindowManager.LayoutParams

Android 下自定义Toast

一笑奈何 提交于 2019-12-06 02:03:18
自定义Toast中用到了windowManager这个类 一下为简单介绍: 应用程序与窗口管理器的接口。WindowManager是Android中一个重要的服务。WindowManager Service是全局唯一的。它将用户的操作,翻译成指令,发送呈现在界面上的各个window。Activity会将顶级控件注册到Window Manager中,当用户触碰屏幕或键盘时,Window Manager就会通知到,而当控件有一些请求产生,也会经由ViewParent送回到Window Manager中,从而完成整个通信流程。 整个Android的窗口机制就是基于一个叫做WindowManager,这个接口可添加View到屏幕,也可从屏幕移除View。它面向的对象一端是屏幕,另一端就是View,通过WindowManager的addView()创建view,这样产生的view根据WindowManager.LayoutParams属性不同,效果也就不同了。比如创建系统顶级窗口,实现悬浮窗口效果。注意显示出来就一定要销毁掉(remove())。 三、获取其实例的方法 1、WindowManager wm=(WindowManager) getSystemService(Context.WINDOW_SERVICE); 2、WindowManager wm=(WindowManager)