写Android程序的时候一般用WindowManager就是去获得屏幕的宽和高,来布局一些小的东西.基本上没有怎么看他的其他的接口. 这两天想写一个简单的类似于Toast的东西,自定义布局,突然发现,原来Toast的时间是不能自己定义的,只有两个固定的时间,分别是2秒和3.5秒.我的需求是自定义显示的时间,这个显然不能满足我的需求.但是它是如何做到显示一个View凌驾于现有的所有的View之上的呢? 我们Android平台是一个又一个的Activity组成的,每一个Activity有一个或者多…
1.理清概念 我们使用过Dialog和PopupWindow,还有Toast,它们都显示在Activity之上.那么我们首先需要理解的是android中是如何去绘制这些UI的呢?这里我只讲我所理解的,首先看一层次图(盗用网络)   首先我们看到左边的Activity层,我们使用到的Activity,其中会有一个PhoneWindow,这个每一个Activity都包含的,并且PhoneActivity去管理一个DecoView根视图,并且这也解释了我们使用的setContentView(int r…
<一> Window window是android中的窗口,表示顶级窗口的意思,也就是主窗口,它有两个实现类, PhoneWindow和MidWindow,我们一般的activity对应的主要是PhoneWindow. 它概括了android窗口的基本属性和功能. Window属性列举如下: FEATURE_OPTIONS_PANEL = 0; 功能不明,参见后面的说明(默认使能) FEATURE_NO_TITLE = 1; 无标题栏 FEATURE_PROGRESS = 2; 在标题栏上显示…
WindowManager 中LayoutParams的各种属性 WindowManager.LayoutParams 是 WindowManager 接口的嵌套类(内部类):它继承于 ViewGroup.LayoutParams: 它用于向WindowManager描述Window的管理策略. 1. public int x;   如果忽略gravity属性,那么它表示窗口的绝对X位置.   什么是gravity属性呢?简单地说,就是窗口如何停靠.  当设置了 Gravity.LEFT 或 G…
其实在android中真正展示给用户的是window和view,activity在android中所其的作用主要是处理一些逻辑问题,比如生命周期的管理.建立窗口等.在android中,窗口的管理还是比较重要的一块,因为他直接负责把内容展示给用户,并和用户进行交互.响应用户的输入等. 在讲窗口管理时,有必要先说下ViewManager这个接口,这个接口主要有以下的实现子接口和实现类,分别是:WindowManager和ViewGroup里面还有三个重要的方法: * addView(); * upd…
ActivityThread类:performLaunchActivity函数: activity.attach(appContext, this, getInstrumentation(), r.token,                         r.ident, app, r.intent, r.activityInfo, title, r.parent,                         r.embeddedID, r.lastNonConfigurationIns…
前言 在此前的系列文章中我们学习了WindowManager体系和Window的属性,这一篇我们接着来讲Window的添加过程.建议阅读此篇文章前先阅读本系列的前两篇文章. 1.概述 WindowManager对Window进行管理,说到管理那就离不开对Window的添加.更新和删除的操作,在这里我们把它们统称为Window的操作.对于Window的操作,最终都是交由WMS来进行处理.窗口的操作分为两大部分,一部分是WindowManager处理部分,另一部分是WMS处理部分.我们知道Windo…
通过前几篇的文章(查看系列文章:http://www.cnblogs.com/jerehedu/p/4607599.html#gui ),我们清楚了Activity实际上是将视图的创建和显示交给了Window对象进行了处理并分析了视图的测量.布局及绘制过程.本篇文章将继续详细分析Window及WindowManger的作用. 首先,我们将通过下图弄清楚他们之间的关系. 通过前几篇的文章,我们清楚了Activity实际上是将视图的创建和显示交给了Window对象进行了处理并分析了视图的测量.布局及…
前言 在上一篇文章我们学习了WindowManager体系,了解了Window和WindowManager之间的关系,这一篇我们接着来学习Window的属性. 1.概述 上一篇文章中我们讲过了Window.WindowManager和WMS之间的关系,WMS是Window的最终管理者,Window好比是员工,WMS是老板,为了方便老板管理员工则需要定义一些“协议”,这些“协议”就是Window的属性,被定义在WindowManager的内部类LayoutParams中,了解Window的属性能够…
本文将主要介绍addview方法,在windowManager.window.viewGroup中的实现原理.首先将介绍这些类结构关系,然后分析其内在联系,介绍实现原理,最后介绍重要的一个参数windowManager.layoutParams. 文章预计分为三个部分. 一.首先介绍一下上述接口.类的结构 接口:windowManager 用来在应用与window之间的管理接口,管理窗口顺序,消息等 public interface WindowManager extends android.v…