Android学习中关于WindowManager的讲解(转载)
2010-04-21 16:14
543 查看
我们
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);
一般在刚开始开发
android
时,会犯一个错误,即在
View
的构造函数中获取
getWidth()
和
getHeight()
,当一个
view
对象创建时,
android
并不知道其大小,所以
getWidth()
和
getHeight()
返回的结果是
0
,真正大小是在计算布局时才会计算,所以会发现一个有趣的事,即在
onDraw( )
却能取得长宽的原因。
width = activity.getWindowManager().getDefaultDisplay().getWidth();
height = activity.getWindowManager().getDefaultDisplay().getHeight();
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);
一般在刚开始开发
android
时,会犯一个错误,即在
View
的构造函数中获取
getWidth()
和
getHeight()
,当一个
view
对象创建时,
android
并不知道其大小,所以
getWidth()
和
getHeight()
返回的结果是
0
,真正大小是在计算布局时才会计算,所以会发现一个有趣的事,即在
onDraw( )
却能取得长宽的原因。
width = activity.getWindowManager().getDefaultDisplay().getWidth();
height = activity.getWindowManager().getDefaultDisplay().getHeight();
相关文章推荐
- Android学习中关于WindowManager的讲解(转载)
- Android学习中关于WindowManager的讲解(转载)
- Android学习中关于WindowManager的讲解(转载)
- 关于 android 中 postDelayed方法的讲解 (转载)
- [转载]关于Android ProGuard混淆学习记录
- Android学习中关于WindowManager
- 转载:Android动画学习笔记-Android Animation
- Android关于技能清单的进一步学习
- 关于 android 中 postDelayed方法的讲解
- android学习---- WindowManager.LayoutParams
- 关于android的MotionEvent详细讲解
- Android中关于JNI 的学习(六)JNI中注册方法的实现
- Android(java)学习笔记98:关于string类型的面试题
- 关于可能会触发android.view.WindowManager$BadTokenException异常的情况
- Android中关于JNI 的学习(一)对于JNIEnv的一些认识
- 关于学习android中v4包中PagerAdapter实现引导页效果
- 关于Android连载(3)Android程序开发指南【转载】
- Android动画学习Demo(1) 关于ViewAnimation的用法及总结
- (转载)Android学习 - 自定义输入法
- 2015年北京的第一场雪-关于android学习的思考(84)