Android下WindowManager的作用
来源:互联网 发布:linux 开启端口软件 编辑:程序博客网 时间:2024/06/06 10:53
http://blog.csdn.net/jinlking/article/details/4682953
写Android程序的时候一般用WindowManager就是去获得屏幕的宽和高,来布局一些小的东西。基本上没有怎么看他的其他的接口。
这两天想写一个简单的类似于Toast的东西,自定义布局,突然发现,原来Toast的时间是不能自己定义的,只有两个固定的时间,分别是2秒和3.5秒。我的需求是自定义显示的时间,这个显然不能满足我的需求。但是它是如何做到显示一个View凌驾于现有的所有的View之上的呢?
我们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 mParams = new WindowManager.LayoutParams();
mWm.addView(view, mParams);
我们这个button的显示和当前的运行环境基本上是无关的,当前是什么activity或者是桌面,使用这个底层的结果给你的编程带来很大的灵活性,但是要注意,显示出来就要销毁掉,这个是必须的,销毁其实就是一个remove。
有些时候,这样的使用会事半功倍,带来奇效。
- Android下WindowManager的作用
- Android下WindowManager的作用
- Android下WindowManager的作用
- Android下WindowManager的作用
- Android下WindowManager的作用
- Android--WindowManager.LayoutParams(下)
- Android--WindowManager.LayoutParams(下)
- Android WindowManager的API
- Android的WindowManager解析
- [Android 界面] WindowManager的使用
- [Android 界面] WindowManager的使用
- Android的Window和WindowManager
- Android的Window和WindowManager
- Android的Window和WindowManager
- Android中Window、WindowManager、ViewRootlmpl关系与作用笔记
- android windowManager
- android windowManager
- Android--WindowManager
- snmp安装配置
- Union和Union All的区别
- Java多线程程序设计
- 第二周编程作业2 信号报告
- 推荐几个有用的iOS界面开源视图、控件
- Android下WindowManager的作用
- MongoDB C#驱动中Query几个方法
- windows下cmd命令提示符下让程序后台运行命令
- 详解Java多线程开发中的数据同步
- iOS 总结iOS 8和Xcode 6的各种坑(是否中招,求补充和建议)
- ~/.config/autostart 开机自运行程序
- 稀疏矩阵 三元组构建,简易功能实现
- linux下安装Oracle时交换空间不足的解决方法
- Linux命令dmidecode - 查看硬件信息