1)动态加载Layout的代码是 getWindow().setContentView(LayoutInflater.from(this).inflate(R.layout.main, null)); 它等同于 setContentView(R.layout.main); 其实 getWindow().setContentView(LayoutInflater.from(this).inflate(R.layout.main, null))  是 setContentView(R.layout.…
1)动态载入Layout的代码是 getWindow().setContentView(LayoutInflater.from(this).inflate(R.layout.main, null)); 它等同于 setContentView(R.layout.main); 事实上 getWindow().setContentView(LayoutInflater.from(this).inflate(R.layout.main, null))  是 setContentView(R.layout…
不管工作几年的 Android 工程师,或多或少都听说过 Window 的概念,并且隐隐约约感觉它在 Activity 与 View 之间应该发挥着某种连接的作用.但是如果需要说出这 3 者之间的关系,多数工程师不知道从何下手. Activity 的 setContentView Activity 是 Android 开发人员使用最频繁的 API 之一,最初在接触 Android 开发时,我始终认为它就是负责将 layout 布局中的控件渲染绘制出来的.原因很简单,每当我们想显示一个新的界面时,…
一.简述如何将Activity展现在手机上 Tips: Activity本身是没办法处理显示什么控件(view)的,是通过PhoneWindow进行显示的 换句话说:activity就是在造PhoneWindow,显示的那些view都交给了PhoneWindow处理显示 1.在Activity创建时调用attach方法: 2.attach方法中会调用PolicyManager.makeNewWindow() 实际工作的是IPolicy接口的makeNewWindow方法 ①.其中创建了一个win…
Activity类:Android四大组件之一,是开发者最常用的一个组件 Window类:是一个抽象类,具有窗口管理的功能,实现类为PhoneWindow View类:提供对View的操作,包括绘制测量等等   他们三个之间的关系便是Activity类通过Window组装View对象,然后把组装出来的对象交给系统去绘制   接下来我们从代码的角度分析一下这个过程   首先,我们在写Activity的时候,会重写系统提供的onCreate方法,然后调用setContentView来绑定页面布局  …
我在研究任玉刚老师的<android开发艺术探索>的关于windowmanager那一章时,我发现自己对于acitivity.window和view之间的概念还是比较模糊. 然后查了一下android官方文档,actvity定义如下: An Activity is an application component that provides a screen with which users can interact in order to do something, such as dial…
在activity的attacth方法中,通过policymanager 的makenewwindow来创建window 而window的具体实现是phonewindow 接下来通过setcontentview来加载view 具体过程分析: (1)如果没有DecorView,创建它 创建时通过inflater来加载view (2)将view添加到DecorView的mcontentparent中 (3)回调Activity 的oncontentchanged方法通知activity视图已经发生了…
转自 http://www.cnblogs.com/loulijun/archive/2012/02/09/2344681.html Activity其实更像一个控制单元,控制window上显示的View内容,比如在Activity里有一个addContentView()方法,实际上调用了window的addContentView()方法 /** * Add an additional content view to the activity. Added after any existing…
1.先看一个现象 1 2 3 4 5 6 7 8 9 10 11 public class MainActivity extends Activity {       @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         //setContentView(R.layout.activity_main);      …
activity 构造一个实现了window的phonewindow,获得viewroot,然后往里面加入view 当发生事件的时候,如KEYDOWN,windowmanagerservice就接受到这个消息,并回调activity里面的对应方法 也就是说activity是控制单元,window是承载模型,view是具体是实现…